Live data from Hacker News

Solid and Clean Code never felt solid or clean to me

devz.cl

1–10 of 82 posts

Re: Solid and Clean Code never felt solid or clean to me

#2
Programming is human. Obviously there will be cultures (and cults) that spring up and die down all the time. I probably pissed off a few colleagues over the years by rejecting their arguments because they were “appeals to authority” that I did not recognize as authorities in the particular problems we were solving at the time. Hate cargo cult programming, but admit I fell into that trap often enough in my early years. Gotta start somewhere.

Re: Solid and Clean Code never felt solid or clean to me

#3
While I agree the "Uncle Bob" cargo cult is IMO dumb, this really rubs me the wrong way:

> You have the vendor pushed acronyms like: ACID, CAP, OLAP, OLTP.

ACID and the CAP theorem in particular has _very_ serious consequences if you're doing anything that isn't a toy with a database, and if there was one thing worth beating into developers, it would be the consequences of those. With the big push on columnar stores and various flexible database options (and replication and etc.) understanding that OLAP and OLTP workloads have very different needs and performance profiles is also something that many (most?) developers seem to miss, and again seems like something that needs to be beaten into a huge cohort of developers. Just because there are some silly/stupid cargo cult acronym around process, does not mean that anything that's an acronym or is confusing to your _garden variety history major_ can just be dismissed. This is part of why we get a lot of the monstrosities that exist out in the world today; there's this really perverse behavior I've seen among people coming from somewhere other than the hard sciences to wave away formalism and anything that smells remotely like math as "oh they're just being dogmatic".

Re: Solid and Clean Code never felt solid or clean to me

#4
I guess by now it's pretty settled down and unanimous that SOLID is an extremely bad way to organize your code, and that Clean isn't very good and has about the same odds of helping or harming you.

But extending the complaint to all acronyms isn't helpful. ACID, OLAP, EBITDA, etc are perfectly good names with clear meanings that can be easily discovered.

Re: Solid and Clean Code never felt solid or clean to me

#5
The #1 problem of most clean code, or microservices, or other architectural patterns is taking a correct observation to a logical extreme.

Decomposition is good. Too much decomposition recreates complexity in the interactions.

Immutability is good. Immutability everywhere creates gymnastics with more mental load.

Extensibility is good. Extensible-everything is reduces usability.

Program isolation is good. Too much isolation melts your laptop into a Docker-shaped puddle.

Having the restraint to not apply your pet idea to everything under the sun is the mark of a mature programmer and indeed a mature person.

Re: Solid and Clean Code never felt solid or clean to me

#6
I clicked the link hoping for a critique of the ideas in SOLID and Clean Code, but what I got was an ironically long-winded critique of Bob Martin’s speaking style.

Martin and I have our differences, but this article isn’t really useful. Martin has a brand and a style. A lot of people find it engaging and entertaining. If you don’t, that’s fine, there’s plenty of other ways to learn about the ideas that are more concise.

Re: Solid and Clean Code never felt solid or clean to me

#8
These rules are all stuff that you probably should think about at some time. But they're often taught as strict rules, which I don't think is a good idea.

In the end many of them are still quite subjective. It is useful to try to avoid mixing unrelated stuff into the same class. But trying to religiously find the boundary to what a single responsibility means in each specific case is a waste of time.

Re: Solid and Clean Code never felt solid or clean to me

#9
post #3

While I agree the "Uncle Bob" cargo cult is IMO dumb, this really rubs me the wrong way: > You have the vendor pushed acronyms like: ACID, CAP, OLAP, OLTP. ACID and the CAP theorem in particular has _very_ serious consequences if you're doing anything that isn't a toy with a database, and if there was one thing worth beating into developers, it would be the consequences of those. With the big push on columnar stores…

Also, DRY, WET, YAGNI are useful ideas.

Re: Solid and Clean Code never felt solid or clean to me

#10
> Software engineering culture is overly dogmatic and subjective.

It doesn't have to be. You can have standards without clinging onto them for dear life like you're about to be swept away in a flood.

> This is not a specific critique of the contents or ideas in SOLID or Clean Code. It’s about how it presents itself and how that made me feel.

Yeah, this blog post added to the dogma. Someone will read this and just look for something else to cling on to. For critique to work, you can't be injecting even more of your superficial opinion, and the readers have to care instead of impatiently looking for "the answer".

Post reply on HN