This book explores in detail everything there is to know about building clean software architecture.
Usually, when we talk about software architecture, what comes to mind is a good working system. We concentrate more on the function of the software than the structure. The structure of the system is treated as an inconsequential part of the software development process. In relation to this, business managers and stakeholders believe that clean software is working software. The truth is that a system works well does not mean it is a clean one.
In this book, software architecture is explored from its two most significant qualities: structure and behavior. The structure of the software plays an important role in software development; it determines the behavior of the software. The structure covers modules, functions, classes, services, and boundaries and encompasses the system itself. But most times, developers often make the mistake of concentrating more on the behavior of the system while the structure comes last.
This action has contributed to most of the problems we have in software development today. This book explains why the structure of the software should come before the behavior. It provides a step by step guide to creating flexible software that will be susceptible to change when the need be. It looks at the various principles guiding software design. These principles range from dependencies, component coupling, component cohesion, to the classes of elements contained in a software and how these elements can be separated from each other. The principles serve as a guideline to creating clean software.
Explanation of the difference between a working architecture and a clean architecture is given. Clean software runs smoothly and has a longer lifespan than working software. The book guides programmers on the foundation and the building blocks to creating clean software. Also, developers are guided on how to make their system obey the rules of testability. Clean software is testable software.