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