Гексагональная архитектура
Порты и адаптеры - подход, который позволяет построить более гибкую архитектуру, со слабой связанностью между слоями.
🧠Доменная модель - цифровая копия предметной области:
- Самый слабо изменяемый слой.
- Зависимость только в пределах своей доменной модели.
- Может выступать композитом.
🏗️Слой Application - «чистые функции», оперирующие доменной моделью:
- Средне изменяемый слой, закрывающий бизнес-сценарии.
- Оперирование только собственным слоем или доменной моделью.
- Основные зависимости DI через порты, которые реализуются в адаптерах.
🔌 Кухня адаптеров не видна за ее пределами
- Самый изменяемый слой приложения.
- Адаптеры реализуют функциональность портов уровня Domain или Application на уровне IN/OUT.
- Адаптеры ничего не знают про другие адаптеры.
Что для себя отметил в этом типе архитектуры: 🌀Гибкость – разделение логики и инфраструктуры, упрощает тестируемость и ремонтопригодность. 🚀Производительность – дополнительный слой абстракции может влиять скорость в нагруженных системах. 🚪Порог входа – не просто разобраться в зависимостях на старте, порты и адаптеры увеличивают объем кода и требуют высокой дисциплины команды.
Вообще, данный вид архитектуры мне симпатизирует, но стоит понимать что нет серебряной пули и все зависит не только от зрелости команды, но и от размера проекта. Как известно, все проблемы разработки решаются введением нового уровня абстракции, но кто будет исправлять и это…😉😀 #dev #ddd #softwareengineering