Blog 2018 04 18 Clean Architecture: A Craftsman's Guide to Software Structure and Design

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

I’ve read quite a few books about clean coding principles or about good coding practices. What I missed a bit is more about software architecture. Hence I enqueued some books about that topic and I started to read them recently.

The first book on my list was Clean Architecture: A Craftsman’s Guide to Software Structrure and design by Robert C. Martin, a.k.a Uncle Bob.

As it’s usually true for his writings, this book is really readable and tries to teach you some lessons through real or imaginary stories instead of just via dry rules. In other words, it seems ideal to introduce software architecture for someone who already has some experience as a developer, but is not an experienced designer.

Besides the book is also a reminder of the most important clean coder principles and in addition, it reminds you what attitudes being a professional software developer means. This latter is something many juniors and even “mediors” really miss in my opinion.

I don’t want just to mention a few of explained disciplines, because it would mean I skip too many important. Instead, I would just mention only two thoughts of Uncle Bob that I find really important and not necessarily evident in all the software companies.

“First of all, a software architect is a programmer; and continues to be a programmer.”

“Of all the aspects of a software system, maintenance is the most costly.” Now this is something really important and something that another book called Code Simplicity: The Fundamentals of Software explains much more in detail. This is so important that soon I’m going to speak about it to our newcomers. Most probably not just newcomers, but more experienced developers and managers should learn about too.

The question is how to minimize that cost, right? According to Uncle Bob ” the goal of software architecture is to minimize the human resources required to build and maintain the required system.”, In other words, invest in your software architecture and you will spend less money on maintenance in the long run. And never forget: “the only way to go fast, is to go well”.

This post is licensed under CC BY 4.0 by the author.