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