Clean Architecture: A Craftsman's Guide to Software Structure and Design: A Craftsman's Guide to Software Structure and Design

by Robert C. Martin

According to Uncle Bob, good architecture is characterized by the fact that software can be adapted to new and changing requirements with minimal effort – and thus has a long and profitable life.

First, the book gives an introduction to the basic principles of software design (SOLID principles), principles of component design (cohesion and coupling), and metrics for evaluating the design (Efferent and Afferent Coupling, Instability, Abstractness). All of the principles and metrics were described by Uncle Bob back in 2002 in "Agile Software Development: Principles, Patterns, and Practices"; for the most part, complete sections were simply copied.

The focus of the book is on the deduction and description of what Uncle Bob calls the "Clean Architecture":

At the software's core are the domain-oriented components, such as entities and use cases. Those are clearly separated from so-called "secondary components" – technical implementation details such as databases, user interfaces, or frameworks. All dependencies flow from the technical details to the core. This is achieved by Dependency Inversion at the component borders.

Decoupling makes it easier to test components. Technology decisions (such as which persistence technology or dependency injection framework to use) can be postponed – or revised relatively easily later in the project.

Numerous practical examples help to understand the theory. And like all of Uncle Bob's books, this one is peppered with numerous anecdotes from the author's professional life – all the way back to the 1970s. These anecdotes are not only entertaining, but also help to understand the long evolutionary path to modern software architecture.

All software architects and programmers should have read "Clean Architecture" – not only to implement modern software architectures – but also to understand the theoretical foundations behind it.

🎧 Suitable as an audiobook? No, due to numerous diagrams and code examples.

By the way, you can find a tutorial series on hexagonal architecture (which is almost identical to clean architecture) in the software craftsmanship section of this website.

Other Recommendations From This Books’s Genres

* Disclosure: We love sharing our favorite books with you! As an Amazon Associate, we earn a small commission from purchases you make through our links, which helps us continue creating content you enjoy.