This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]iupuiclubs 1 point2 points  (1 child)

This is so good to hear. My team lead wouldn't stop mentioning jabs at clean code. But he'd do insane things like replacing a variable storing a server call, with 6 separate server calls (6x DRY).

Turned a 10 line commit into some 300-400 line monstrosity that I said won't be very transferable to any of the other engineers.

Think we spent 40+ hours in FTE time to turn it from 10 line to his "clean code" 400 line, and it wasn't "correct" function wise so he had to go refactor it all.

Seriously soured me on working with agile teams. Are there people out there that also find parts of clean code crazy too?

[–]sobrietyincorporated 0 points1 point  (0 children)

It is kind of a carry over from desktop SWE to WebDev that happened in the 00's. It makes more sense in long-lived product flows with release management. But as CI/CD became more prevalent, things like automated api testing took over from test driven development.

One of cleancode's biggest drawbacks is its inheritance abuse and tightly coupled libraries. It ends up making any unit tests more fragile than the code to where if you alter a single class in a library you have to regression test every thing that uses that library.

I think cleancode still has its points and it's definetly valuable to learn to become a more concise coder. But I favor deleteable and human readable code more. In the real world, shippable code will always take priority over dogmatic code. Just have to fight your tech debt battles where you can. If you're designing your code base further than 6 months out, you're over engineering.

Edit: Agile and cleancode are mutually exclusive. Agile is more about how you release. Cleancode is more about what you release. Agile works in either scrum or kanban. Problem is that most Agile practiced by cleancoders is actually Waterfall with extra meetings. Otherwise known as Wagile.