Wisdom
When you know Link to heading
Learn to think for yourself. Link to heading
Many software engineers seem to miss an important nuance: they often treat principles like SOLID or books such as Clean Code as absolute doctrines rather than as tools to enhance their own thinking. Conversely, some engineers dismiss these principles and books entirely, labeling them as worthless.
In my view, both extremes are misguided. The intent of these principles and books is to inspire engineers to consider their code from different perspectives, sharing the valuable insights of their authors. They are not meant to be rigid dogmas dictating the only way to write software.
Like in the movie, when you truly understand your craft, you’ll recognize when to adhere to the rules and when it’s appropriate to deviate from them.
Quotes Link to heading
Simplicity is prerequisite for reliability.
~Edsger W. Dijkstra
We will never be rid of code, because code represents the details of the requirements
~Robert C. Martin
If you can’t describe what you are doing as a process, you don’t know what you’re doing W. Edwards Deming
If you can’t explain it simply, you don’t understand it well enough Albert Einstein
Quidvis Recte Factum Quamvis Humile Praeclarum
(Whatever is rightly done, however humble, is noble)
A good commit shows whether a developer is a good collaborator.
~Peter Hutterer, Linux.
When you first create a method, it usually does just one thing for a client. Any additional code that you add later is sort of suspicious.
~Michael Feathers Working Effectively with Legacy Code
We will never be rid of code, because code represents the details of the requirements
Clean Code
Indeed, if the discipline of requirements specification has taught us anything, it is that well-specified requirements are as formal as code and can act as executable tests of that code!
The fact remains: Good design is testable, and design that isn’t testable is bad.
~Working Effectively with Legacy Code by Michael Feathers
Align the happy path to the left; you should quickly be able to scan down one column to see the expected execution flow ~Medium Mat Ryer
The bigger the interface, the weaker the abstraction ~Rob Pike