[2/2] Head First Software Architecture (Head First. PO architecture) (Category Architecture)
Continue. story About this book about software design, it is worth starting with an algorithm for creating architecture based on four dimensions, which, according to the authors, looks something like this.
- Determine architectural characteristics based on requirements. Find out what quality attributes are critical to your system. (Performance, scalability, etc.)
- Adopt architectural decisions based on identified characteristics to make decisions about technologies, patterns and approaches
- Determine logical components - break the system into functional blocks, taking into account the functional requirements that must be implemented by the system, as well as architectural characteristics
- Choosing an Architectural Style (e.g. microservices, layered)Supports your features, solutions and components All four dimensions are interrelated; each must correspond to the others. Architectural style should correspond to the selected characteristics and solutions, and logical components should support the characteristics and fit into the style.
The structure of the book is as follows: the first five chapters give an introduction to architecture and examine the four dimensions described above. 1. Software Architecture Demystified: Let’s Get Started! 2. Architectural Characteristics: Know Your Capabilities 3. The Two Laws of Software Architecture: Everything’s a Trade-Off 4. Logical Components: The Building Blocks 5. Architectural Styles: Categorization and Philosophies
The following parts deal with architectural styles, and the authors use a scheme with asterisks for each style according to selected architectural characteristics, which include maintainability, testability, deployability, simplicity, evolvability, performance, scalability, elasticity, fault tolerance, overall cost. These styles roughly correspond to what was in the book Foundations of Software Architecture, where I first saw these charts with these ratings. 6. Layered Architecture: Separating Concerns 7. Modular Monoliths: Driven by the Domain 8. Microkernel Architecture: Crafting Customizations 9. Do It Yourself: The TripEZ Travel App 10. Microservices Architecture: Bit by Bit 11. Event-Driven Architecture: Asynchronous Adventures
In the last chapter, the authors propose to design the system based on the given requirements using the algorithm proposed in the previous chapters. 12. Do It Yourself: Testing Your Knowledge
Ends with the appendix "A. Leftovers: The Top Six Topics We Didn’t Cover", in which the authors discuss interesting topics that did not fit into the main part of the book Should an architect write code? What are the responsibilities of an architect What skills, other than technical skills, are useful to the architect
- A little about the construction of architectural schemes Depth and breadth of knowledge of architects The Benefits of Architectural Cuts
In summary, this book is a good start for immersing in software architecture, and then you can read more advanced books on architecture.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect