The Last Stage of Our Journey
We have almost reached the end. Today, on the final content day of our Clean Code adventure (tomorrow there will be a conclusion), we raise our view from the code level to the system as a whole. This step requires a broader understanding and the ability to look at our software from a bird's eye perspective. Because even if every single line of code adheres to Clean Code principles, it doesn't guarantee a long-term maintainable system architecture.
The Fundamental System Elements
Recurring elements can be identified in every software system. The two most important ones are creation and application. Every system must be assembled from various components – services, repositories, domain objects, database connections, and many more. The creation of these components should be consistently separated from their use in business logic. This follows the well-known Single Responsibility Principle (SRP) and the concept of "Separation of Concerns," albeit at a higher level of abstraction.