[1/2] Head First Software Architecture (Head First. PO architecture) (Category Architecture)
On vacation, I read a book from the Head First series on architecture, which was published in English last March, and in April of this year. appeared In Russian by Peter. In general, I love the Head First series for explaining complex topics easily, and software architecture is definitely a complex topic:) The authors of the book were Raju Gandhi, Mark Richards and Neil Ford, and the last two I know well - I read their books on architecture and I thought they were already peed and I swore to read them. Raju Gandhi, on the other hand, was a beginner to me, but it turned out that he had already written several books in the Head First series and his experience had a beneficial effect on the book - it seemed to me more interesting and useful than Foundations of Software Architecture and Software Architecture: The Hard Parts, which were written by Ford and Richards without Gandhi:) I have already told you about both books:Fundamentals ...and... Hard Parts".
If you go back to the book,Head First Software ArchitectureThis is an accessible introduction to the basics of software architecture, decorated in a visually rich style. (comic)It is based on research in cognitive science, making it a great starting point for developers looking to master architectural thinking.
The main idea of the book is based on the four dimensions of architecture that the authors emphasize.
1) Architectural Characteristics That's what properties are. (||non-functional requirements, quality attributes, architectural characteristics||) The system should support such as scalability, testability, availability, etc. I recently read a whitepaper called “Quality Metrics in Software Architecture.” (1 and 2)QualityElements - quality elements, which, according to the authors of this article, are of three types Metric – a specific metric for measuring architecture quality QualityCharacteristic – global quality characteristic (e.g. reliability, maintenance) Quality Attribute – a quality attribute associated with one of the characteristics The authors of the book do not bother about these -ilities, but note that architectural characteristics are the basis of architecture, without which it is impossible to make architectural decisions or analyze compromises. 2) Architectural Decisions These are decisions that have a long-term or significant impact on the system, for example, the choice of database, the number of services, how they interact. Architectural decisions provide a framework for development teams, defining, for example, the number of services and types of databases. It's funny that years 5 I told you about our architectural processes in T. (Architecture at scale on ArchDays 2020) It was about RFC. (request for comments) ADR (architecture decision records) 3) Logical Components These are the functional building blocks of a system and their interaction. For example, in an e-commerce system, it can be inventory management and payment processing. Logical components are like rooms in a house: basic structural elements with a specific function. 4) Architectural Styles It is a common physical device and system structure, similar to how a building plan determines the structure of a house. Architectural styles can be classified by
- Breaking style. (technical or domain partitioned)
- Deploy models. (monolithic or distributed)
Next, post I'm going to talk about the algorithm for applying these four dimensions to design, and the overall structure of the book.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect