this post was submitted on 29 Oct 2024
62 points (93.1% liked)

Programming

17424 readers
81 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 17 points 2 weeks ago (3 children)

TLDR;

My current project has mostly easy to delete code and not easy to extend. Why? Coz shit was copy-pasted 50 times. It’s not fun to work in this project.

[–] [email protected] 1 points 2 weeks ago

Eh, not really then. If you have some behavior in those 50 copy/pastes that needs to be deleted, you've got to delete it 50 times. That's not easier at all.

[–] [email protected] 9 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

I don't understand, if you've got easy to delete copy-pasted code, then delete it. It'll be a nice and cathartic exercise.

But sounds like what you're really talking about is code that isn't easy to delete.

[–] [email protected] 2 points 2 weeks ago (2 children)

I don’t understand too. Are you suggesting me to drop bunch of features in the product?

[–] [email protected] 5 points 2 weeks ago (1 children)

That means it’s not easy to delete. So your initial premise is wrong.

[–] [email protected] 4 points 2 weeks ago* (last edited 2 weeks ago)

No, that means you falling into author’s bait where they misuse term “delete”. Refactoring is not equal to deleting. One can be result of another. But the truth is that extendable code needs to be modular to be extendable. And modular code is easy to refactor. Author couldn’t not name it “Write code that is easy to refactor, not easy to extend” coz it’s even more dumb

[–] [email protected] 3 points 2 weeks ago (1 children)

I think the responder means that duplicate code is usually easy to refactor into single methods. Typically I see copy pasted code that is changed just a little bit. However much of a duplicated function can be broken into smaller functions and the redundant code removed in favor of calling into the functions. Often what is left then becomes easier to reason about and refactor accordingly. I love the PRs that I make which delete more code than I add but still manage to add functionality. It doesn’t happen often but it’s fun when it does.

[–] [email protected] -3 points 2 weeks ago (1 children)

Right, but my initial comment was about article’s statement being wrong. Refactoring in the way you described will make code harder to delete which is bad according to the article.

[–] [email protected] 3 points 2 weeks ago (1 children)

Sounds like you read the first paragraph only

[–] [email protected] -2 points 2 weeks ago

No, title only

[–] [email protected] 3 points 2 weeks ago

Same thing on my project. Thousands of lines across a few dozen files copied 100+ times. At that point there's almost no going back with everything diverging so long ago.