[2/2] Head First Software Architecture (Head First. Архитектура ПО) (Рубрика Architecture)
Продолжая рассказ об этой книге о проектировании софта, стоит начать с алгоритма создания архитектуры на основе четырех измерений, который по мнению авторов выглядит примерно так
- Определить architectural characteristics на основе требований. Важно выяснить, какие quality attributes критичны для вашей системы (performance, scalability и др.)
- Принять architectural decisions - на основе выявленных характеристик принять решения о технологиях, паттернах и подходах
- Определить logical components - разбить систему на функциональные блоки с учетом как раз функциональных требований, которые должны быть реализованы системой, а также архитектурных характеристик
- Выбрать architectural style - подобрать стиль (например, microservices, layered), который поддерживает ваши характеристики, решения и компоненты Все четыре измерения взаимосвязаны - каждое должно соответствовать остальным. Architectural style должен соответствовать выбранным характеристикам и решениям, а logical components - поддерживать характеристики и вписываться в стиль.
Структура книги выглядит следующим образом: в первых пяти главах дается введение в архитектуру и разбираются четыре измерения, описанные выше 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
В следуюзих частях разбираются архитектурные стили, причем авторы используют схему со звездочками для каждого стиля по избранным архитектурным характеристикам, куда входят maintainability, testability, deployability, simplicity, evolvability, performance, scalability, elasticity, fault tolerance, overall cost. Эти стили примерно соответствуют тому, что было в книге "Fundamentals of Software Architecture", где я в первый раз увидел эти таблички с этими рейтингами 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
В последней главе авторы предлагают спроектировать систему на основе выданных требований, используя алгоритм, предложенный в предыдущих главах 12. Do It Yourself: Testing Your Knowledge
Заканчивается все приложением "A. Leftovers: The Top Six Topics We Didn’t Cover", в котором авторы обсуждают интересные темы, что не влезли в основную часть книги
- Должен ли архитектор писать код
- В чем состоят обязанности архитектора
- Какие навыки, кроме технических, полезны архитектору
- Немного про построение архитектурных схем
- О глубине и широте знаний архитекторов
- О пользе архитектурных кат
В итоге, если суммировать, то эта книга хороша в качестве старта для погружения в software architecture, а дальше уже можно читать и более продвинутые книги по архитектуре.
#Architecture #Software #Engineering #SystemDesign #DistributedSystems #Metrics #Architect