Одна вещь заранее: я прибываю из N-слоистого фона.Лук против N-слоистой архитектуры
я теперь потратил довольно немного времени получать мою голову вокруг Луковый архитектуры и связанных с доменными Driven концепций, таких как шестиугольная Архитектура чтения ресурсов, как Jeff Palermo's series of blog posts, Mark Seemann's contribution from a DI-perspective, "Onion-izing your achitecture" и "The clean architecture".
Что все эти статьи имеют в общем является то, что они утверждают, что следующие пункты:
- Фокус сохраняется вокруг модели предметной области бизнес-прецедента
- Неудачник связь между слоями, подчеркивая Dependency Inversion Принцип
- Повышение независимости внешних инфраструктур, таких как рамки, сохраняемость данных, пользовательский интерфейс
- Лучше проверяемость/ремонтопригодность
Хорошо, что все звучит невероятно хорошо, и эти диаграммы выглядят также сладкими. Но вопрос, который возникает для меня: не все ли это достигается простым добавлением фасадов в мою традиционную N-многоуровневую архитектуру?
- Каждый слой просто знает абстракцию слоя ниже
- Конкретные реализации могут быть внутренние по отношению к каждому слою и, следовательно, находятся в том же месте, что и абстракции
- Деталь реализации может быть легко выгружена поскольку они являются внутренними для слоя и не должны влиять на остальную часть приложения.
Пожалуйста, помогите мне понять истинные преимущества архитектуры, ориентированной на домен.
Заранее благодарен!
Что вы подразумеваете под: «Конкретные реализации могут сохраняться внутри каждого слоя и, следовательно, находиться в одном месте с абстракциями»? Архитектура лука собирается продвигать реализацию, насколько это возможно. – Dzenan
Да, я знаю об этом. Но я думаю, что это также может привести к путанице, особенно для новых разработчиков. Если они работают только с абстракциями, но фактические реализации находятся в совершенно другом месте/слое. Вот почему я указал, что с архитектурой N-layerd с фасадами абстракции будут в том же месте, что и их реализация. –