Одна вещь заранее: я прихожу из N-многоуровневого фона.
Теперь я потратил немало времени на то, чтобы обойти архитектуру Onion и связанные с ним концепции Domain Driven, такие как ресурсы чтения гексагональной архитектуры, такие как серия сообщений в блогах Джеффа Палермо, Взгляд Марка Зеемана с DI-перспективы, "Лучаризация вашей архитектуры" и "Чистая архитектура" .
Что все эти статьи имеют общее, так это то, что они заявляют следующие моменты:
- Фокус сохраняется вокруг модели домена бизнес-случая
- Ослабление связи между слоями путем подчеркивания принципа инверсии зависимостей
- Повышенная независимость внешних инфраструктур, таких как структуры, постоянство данных, пользовательский интерфейс
- Лучшая тестируемость/ремонтопригодность
Хорошо, что все звучит невероятно красиво, и эти диаграммы тоже выглядят хорошо. Но вопрос, который возникает для меня: не все ли это достигается простым добавлением фасадов в мою традиционную N-многоуровневую архитектуру?
- Каждый слой просто знает абстракции слоя ниже
- Конкретные реализации могут сохраняться внутри каждого слоя и, следовательно, находятся в том же месте, что и абстракции
- Детали реализации могут быть легко заменены, поскольку они являются внутренними для уровня и не должны влиять на остальную часть приложения.
Пожалуйста, помогите мне понять истинные преимущества архитектуры, ориентированной на домен.
Спасибо заранее!