The timeless way of building software
Uncle Bob tackles the delicate subject of software architecture using the same recipe of the highly popular Clean Code. A wonderful, comprehensive, full of wisdom book, that captures the essence of software architecture in the most condensed, delightful form.
What makes this book stand apart from other similar books is the author’s unique experience, having written code for more than half a century, for various kinds of application (firmware, distributed systems, batch processing, GUI, frameworks, etc.), in various languages (assembler, C, C++, Java) and using various paradigms. Despite all of this, Uncle Bob claims the essence of programming is still the same as it was when Alan Turing wrote the first machine code in 1946. But now, we have a grasp of the timeless rules that make software works. This is what this book is about.
This contrasts heavily with the book Software Architecture for Developers where Simon Brown, who, by the way, wrote a short chapter in this book, adds new notation around his C4 model. Clean Architecture does not provide nothing new, and discusses the old principles like SOLID in a new light. And it rocks! I really liked reading this book.
What is not this book is a presentation of common architecture styles (hexagonal, microservices, SOA, etc.), even if the book uses them to illustrate architecture principles on which these styles are strongly based.
Clean Architecture is composed of lot of very short chapters (around 5 pages each), containing almost no code. The primary audience is programmers having a basic understanding of common principles and patterns and a curiosity towards architectural concerns. As the author says, “…[A] software architect is a programmer; and continue to be a programmer.” If your software application looks like a Jenga puzzle where every piece is more difficult to place, or if the cost of change exceeds the benefit of change, you definitively need this book. Regardless of whether or not you have the role of architect on your project, this book will help you reconsider why things have started getting wrong.
In the end, Clean Architecture could be see as a memoir, written by an author willing to pass on his unique knowledge and experience. A major contribution in our discipline.