Денис Полторак. Architectural Metapatterns
Book Architectural Metapatterns
Architectural Metapatterns (about this book)
WEB версия книги Architectural Metapatterns
github.com/denyspoltorak/metapatterns
Все архитектурные диаграммы на этой странице заимствованы из книги Architectural Metapatterns автора Дениса Полторака (metapatterns.io) и распространяются по лицензии Creative Commons Attribution 4.0 International (CC BY 4.0).
Для глубокого понимания предметной области достаточно освоить ключевые архитектурные стили (монолит, микросервисы, событийно-ориентированная и многослойная архитектура) и фундаментальные концепции (слабая связанность, высокая связность, масштабируемость, отказоустойчивость). Паттерны выступают лишь готовыми инструментами для решения типовых задач, к которым обращаются по мере практической необходимости, а не обязательным сводом догм.
Диаграммы выполнены в формате NoUML (в виде прямоугольников и стрелок), и большинство из них относятся к одному из следующих типов:
Компоненты на диаграммах окрашены в соответствии с типом содержащегося в них кода:
- Варианты использования (логика приложения) отмечены зеленым цветом.
- Бизнес-правила (логика предметной области) выделены синим цветом.
- Общий код — белый.
- Данные отображаются серым цветом.
бизнес-логику можно написать без использования шаблонов, но полученный код, скорее всего, будет сложно поддерживать, и даже его производительность может пострадать
Ну чтиво для научного исследования ...
Ваша позиция абсолютно понятна и очень прагматична. Если вы работаете над реальными проектами, а не пишете диссертацию, академическая классификация и попытки загнать всё в теории действительно быстро начинают казаться бесполезной тратой времени.
Инженеру-практику архитектура ПО нужна только для того, чтобы решать конкретные прикладные задачи:
- Система не падает при нагрузке.
- Код легко менять и дополнять через полгода, не ломая соседние модули.
- Команда не путается в том, куда положить новую логику.
Если «Architectural Metapatterns» ощущается как абстрактная классификация ради классификации, эту книгу смело можно отложить в сторону.
Что читать вместо теории для реальной пользы?
книги с прикладным уклоном:
- Марк Ричардс, Нил Форд — «Фундаментальные подходы к архитектуре программного обеспечения» (Fundamentals of Software Architecture) Максимально приземленная книга: рассматривает архитектурные стили с точки зрения компромиссов (trade-offs), стоимости решения, инфраструктуры и работы в команде.
- Алекс Сюй — «System Design. Подготовка к сложному интервью» (System Design Interview) Отличный наглядный разбор того, как проектировать конкретные сервисы (поисковики, чаты, хранилища) из готовых блоков.