Intro to the Software Architecture
This is the first post in the Software Architecture series. In them, I will write about my personal opinions and understandings of topics covered in the book Clean Architecture by Uncle Bob.
For starters, let's define what exactly does it represent. Software architecture are all the low-level details and the high-level structure as a whole. It represents the continuum of decisions from the highest to the lowest levels. It's not that some systems do have architecture and others don't. Just like buildings, they all have some kind of architecture and the matter is not its presence, but its quality.
The only way to go fast, is to go well.
The goal of it should be to minimize the human resources required to build and maintain the required system. It can be measured by the effort needed to adapt to changing requirements. The more this effort grows throughout the life of the system, the worse is the architecture quality. In worst cases, the effort can grow exponentially with each release, until it is almost impossible to adapt to new requirements, which causes many projects to die.
Next article: behavior and structure.