Dreadful Clean Code is an awesome list of rebuttals to a dreadful idea.
SOLID is a money-making instrument, not an instrument to make code better.
The OO design concept initially proved valuable in the design of graphics systems, graphical user interfaces, and certain kinds of simulation. To the surprise and gradual disillusionment of many, it has proven difficult to demonstrate significant benefits of OO outside those areas.
If a language technology is so bad that it creates a new industry to solve problems of its own making then it must be a good idea for the guys who want to make money. This is is the real driving force behind OOPs.
So I’m sorry, but for something like git, where efficiency was a primary objective, the “advantages” of C++ is just a huge mistake. The fact that we also piss off people who cannot see that is just a big additional advantage.
If you want a VCS that is written in C++, go play with Monotone. Really. They use a “real database”. They use “nice object-oriented libraries”. They use “nice C++ abstractions”. And quite frankly, as a result of all these design decisions that sound so appealing to some CS people, the end result is a horrible and unmaintainable mess.
But I’m sure you’d like it more than git.
I have never seen an OO principle which, if I applied it to my code, would improve it in any way. On the contrary, in my humble opinion it would make it more cumbersome, less reusable, less flexible and less maintainable.
After reading all these OO principles and best practices I have concluded that they were written by people who have little or no experience of web-based database applications, so all their “advice” is not worth the toilet paper on which it was written. Until such time as they gain that experience and come up with ideas which are demonstrably better than mine I shall continue to ignore them.
But for a certain segment of the computing industry, the answer to “why is software so slow” is in large part “because of ‘clean’ code”. The ideas underlying the “clean” code methodology are almost all horrible for performance, and you shouldn’t do them.
The industry best practices are still revolving around the object oriented programming which does not perform well on a modern hardware.
The “Clean code” ideals are a succinct offender. Appealing mostly to vague, unverifiable, and unfalsifiable measures of how good code looks, or how easy it is to read and understand. It forgets the physical foundations of our computing systems. Preferring subjective appreciations of “cleanliness”, supposed to make the practice of software programming more appealing to the engineer, as opposed to trying to provide the best possible technology to the users.
Lack of Falsifiability in Software Engineering by Vicente Ferrari Smith