Following article is my review of Clean Architecture by Robert C Martin.
Short version: Great book not only for developers I think anybody working in IT should read the first few chapters.
Interlude – My Biases
I am not a great history buff, but I have some fondness for history. I like knowing where we came; this can help us decide where we are going.
That is why this fun exercise from „Mass Effect Retrospective” by Shamus Young speaks deeply to me.
Imagine that right now, in Cambridge, you could find Sir Isaac Newton, Albert Einstein, Sir Edward Victor Appleton, and Niels Bohr hanging out with Stephen Hawking. And all of these guys are busy doing research, writing papers, and commenting on one another’s work. Imagine if we still had Da Vinci, Charls Darwin, Galileo Galilei, Marie Curie, Johannes Kepler, Nikola Tesla, Nicolaus Copernicus, Rosalind Franklin, Erwin Schrà¶dinger, Richard Feynman, and Carl Friedrich Gauss. Even better: Most of these people are still in their prime. None of them has entered the last century of their life. Galileo is pretty busy, but if you corner him at a party he’ll tell you all about hanging out with Al-Khwarizmi before his death in the 1700’s. And if you get a few drinks into him, he’ll wax nostalgic about the teachers of his youth, most of whom studied under Plato, Archimedes, and Pythagoras.Shamus Young, Mass Effect Retrospective 45: The Temple of duh
For the same reason, I was fascinated by Extra Credit about Solvay conference of 1927 where all titans of science from the beginning of the century have met.
In the case of IT, we still leave in a golden age. The Greats are still walking among us if you are lucky you can meet them on conferences.
Robert C. Martin is one of the greats. He bought his way in few Clean Code and SOLID (yes I know the acronym is not his but principle that built it are HIS), and let us not forget he had his part in authoring the Manifesto for Agile Software Development.
Why am I talking about all of this?
So you are aware of my bias. Let say it this way: Here we have a book by a man who was Writing History Of Programming where he is writing about the history of programming. Now
Clean Architecture – book structure.
Book has 6 sections.: „Introduction”, „Starting with the bricks”, „Design Principles”, „component principles”, „Architecture” and „Details”.
But Thematically this book can be split into there:
Work as a history lesson, to explain why good architecture is essential.
But also how we got here. How many decision we made in the past, that were wrong or short-sighted. But even what we learned from it.
Next two sections are dedicated to software development principles and their importance in software design how they start at the very bottom on a simple line of code and how they radiate on component and even whole architecture level.
Last two strongest longest by page volume is Architecture.
Here Author has explained all different aspect that good architect should take into consideration. And also what is just a Detail that shouldn’t be part of the architecture.
What I like about Clean Architecture.
This book is kind of „Baby first steps” in the world of architecture.
I don’t think that an experienced architect would learn much from this book. But typical craftsmen no meter if developer or tester can expand his horizons. And I think this book serves as good theoretical fundamentals for further research info world of architectures.
The chapters on history I think are most important. There is a clear message from them: Even if in theory in the software world sky is the limit. All the principles we created exist only to create limitation. So you won’t go the way we know it won’t work.
What we have learned over the last half-century is what not to do
I won’t lie this quote and chapter preceding it changed my view on software development.
Another great aspect from the perspective of the tester:
There is an important chapter about the importance of testability and how it is also an essential aspect of architecture.
But – there are also issues.
As much as I think this book should be read by anybody working in software development (no matter the role). It is not a book for juniors. To fully appreciate it you had to feel the consequences of the bad design.
There is another group that won’t gain from this book: actual software architects. It’s too vague and has little practical advice.
This book is only about clean architecture – treating it as a goal above all, outside of lip service Uncle Bob is not taking into consideration such important aspects like scalability, reliability, productivity/efficiency of developers and last but not least working with a legacy system.
My last issue is with the durability of the book
My copy (Prentice Hall; 1 edition (September 20, 2017)) didn’t survive reading without losing pages. At least 10 pages have fallen out.
I look like the book wasn’t properly glued.
To sum it up.
Review of Clean Code by Uncle Bob was a very first post on this blog. And I still think it is the most important book for anybody who wants to work with the code.
Clean Architecture It’s a great book to get context about architecture to learn more about what to consider. But it is not a practical book. You won’t find tips and trick here. You won’t learn how to do things here. But you will learn how to think about things.
As I said a few times in this review – I think this book is worth reading.
So much that I have added it to my article with books to read for testers.