LINUX.ORG.RU

Я бы посоветовал следующее:

  1. Enterprise Integration Patterns (есть и на английском, и на русском)
  2. Domain Driven Design
  3. Event Sourcing Фаулера
  4. Посмотреть на шаблоны интеграций какого-нибудь Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL/Enterprise+Integration+Patterns)
  5. Посмотреть на разные подходы вроде CQRS vs Repository (CRUD) и т.п.

Среди книг про микросервисы мне попадалась книжка с описанием архитектурных шаблонов, но название пока не смог найти. Найду - скину.

Если про «стили» против «шаблонов» - то стилями я бы назвал CRUD (Repository) / DDD/ Event Sourcing / CQRS (пункты 2,3 и 5). Эта четверка вполне себе сильно отличается друг от друга именно фундаментом. Остальное - решение частных задач, поближе к шаблонам разработки (Синглтон, Наблюдатель, Шлюз и ему подобные).

А вообще, «архитектура» в 90% случаев - это про то, как кроме развития функционала обеспечить соблюдение нефункциональных требований (нагрузка, отказоустойчивость, как работать сопровождению с этой системой и прочее). Когда начинаешь отталкиваться от этих требований, а не от функций - тогда и начинается работа.

Qasta
()
Ответ на: комментарий от Qasta

То. что ты назвал стилями, есть шаблоны.

Лучшее, что нашёл онлайн: https://ru.frwiki.wiki/wiki/Architecture_logicielle#Les_styles_architecturaux

У Вернона есть про стили, но подразумевается, что я уже в курсе…

lochness
() автор топика
Ответ на: комментарий от lochness

Вот за что люблю архитектурные и философские споры, так это за то, что там нет ничего НЕсубъективного :)

Я работал с большими приложениями (от 10-15 человеко-лет), написанными в стиле DDD или CQRS, разбирал системы с Event Sourcing (они, как правило, по-меньше, так как часто решают ограниченный круг задач), и не могу назвать их «шаблонами», так как они слишком сильно влияют на буквально всё.

С другой стороны, если говорить об информационной архитектуре предприятия, то в этом случае, наверное, нужны как раз размытые формулировки вроде «Многослойная архитектура» и «Архитектура потока данных». Хотя толку от них не очень много для решения реальных задач, если не разбираться, что там «под капотом».

Так вы про информационную архитектуру или про архитектуру программ, или про что-то ещё? Напишите подробнее.

Qasta
()
Последнее исправление: Qasta (всего исправлений: 1)