first-programmer
@first-programmer
Backend software engineer

DDD вообще и в частности если стоить на основе yii2?

Всем привет!)

Есть вопрос про DDD.

Начал изучать эту архитектуру, почитал статьи, посмотрел видео, в общем не мало материала перерыл на эту тему. Сам сейчас больше всего пишу на Yii2 фреймворке.

Вот есть у нас модель. В yii2 это ActiveRecord (чаще всего), что это из мира DDD? Это entity? Или иначе, что есть entity в концепции Yii2? AR содержит описание полей модели и вроде подходит на эту роль больше всего, но в то же время, вообще даже не удовлетворяет концепции single responsibility и содержит разную логику не присущую entity.

Нужен ли вообще AR в DDD? Как его использовать? Как некоторый сервис? Или вообще не использовать? А те же связи где хранить тогда?

Может можно типа переписать генератор моделей, так чтобы генерировать просто модели с набором полей, без привязки к AR, а для доступа к базе типа использовать не AR, а просто query builder?

Может кто-то видел Yii2 проект с развернутым DDD, то есть с готовой архитектурой, генераторами? Хочется посмотреть архитектуру и понять, как вообще это должно выглядеть. Некоторые вообще пишут, что логику нужно держать в сервисах, хотя в большинстве статей, что я читал и в видео, которые смотрел, говорят, что в сервисах нужно держать только логику не подходящую ни для одной entity.
  • Вопрос задан
  • 169 просмотров
Пригласить эксперта
Ответы на вопрос 1
Реализаций много, все они различаются. Эталоном можно считать книгу Эванса. Вместо сервисов можно использовать CQRS, которые непосредственно взаимодействуют с репозиториями. У меня логика, которую нельзя реализовать в корневой сущности агрегата, помещается в репозиторий, но это решение очевидно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы