this post was submitted on 01 Sep 2023
339 points (96.2% liked)

Programming

17457 readers
66 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] 167 points 1 year ago* (last edited 1 year ago) (8 children)

Refactoring is something that should be constantly done in a code base, for every story. As soon as people get scared about changing things the codebase is on the road to being legacy.

[–] [email protected] 45 points 1 year ago

Been with a lot of codebases that had no unit tests at all and everyone was afraid to change anything because the QA process could take weeks to months.

The result is you have a codebase that ages like milk.

[–] brettvitaz 28 points 1 year ago* (last edited 1 year ago) (1 children)

Only if the code base is well tested.

Edit: always add tests when you change code that doesn’t have tests.

[–] mark 3 points 1 year ago

And also try to make tests that don't have to change if you refactor in future (although there are some exceptions)

[–] [email protected] 13 points 1 year ago (2 children)

Doesn't everybody agree with this? I really never thought of it as a hot take.

[–] [email protected] 15 points 1 year ago (1 children)
[–] intelati 5 points 1 year ago (2 children)

Corps != people.

People just pass the buck and nobody stands up for what is most correct

[–] flumph 8 points 1 year ago

Today I removed code from a codebase that was added in 2021 and never ever used. Sadly, some people are as content to litter in their repo as they are in the woods.

[–] [email protected] 8 points 1 year ago

Our company motto is: "leave it cleaner than you found it"

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

Who is in the wrong? Your manager, for not giving you time to refactor? Or you for giving him the option?

[–] nous 7 points 1 year ago (1 children)

Why do you need time to refactor? It is just part of the work you need to do and should be accounted for when doing any other work. IMO a big mistake people make is thinking refactoring is some separate thing they need permission to do. You don't, if you need to make a change in some area refactor it first to make it easier to accept your change, then add your change then refactor to clean up. This is not three separate tasks, just three steps in one task. You should be given enough time to do the whole task, not just part of it.

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

I guess I need to refactor for readability. What you just explained is the entire point of the comment I posted. Refactoring is part of the job. Don't give your manager a choice on whether or not it needs done.

[–] hascat 2 points 1 year ago

Yes please. Many times when I add a feature I end up refactoring some of the code first to better accommodate it.

[–] russmatney 1 points 1 year ago

We used to call this ‘Code is Cheap’ at my last job - you’re spot on about the value of it

[–] [email protected] 1 points 1 year ago

thank_you_michael_scott.gif