разных сущностей вместе для реализации какого-нибудь функционала происходит в контроллерах.
Если функционал, где вместе используются разные сущности нужно использовать и в других контроллерах (т.е. повторяющийся код), то на какой уровень можно поднять такой функционал? Выше контроллеров сервисы, но сервис используют только конкретный сущность и репозиторий, для которых они предназначены, и там разместить функционал, которая оперирует несколькими сущностями не могу
> Использования сервисов разных сущностей вместе для реализации какого-нибудь функционала происходит в контроллерах. Обычно логика сервиса пишется под конкретный сценарий использования. Если переиспользовать сервисы под разные ответственности, то часть логики будет перетекать в слой выше (в твоём случае в контроллеры). А сами сервисы становятся более generic. Поэтому бы рассмотрел другой вариант, не с точки зрения "переиспользования кода", а с точки зрения "отсутсвия дублирования ответственности". Добавь еще один метод в сервис, который будет дублировать код из других сервисов. Пока ответственность не дублируется, в повторяющемся коде нет ничего страшного
> Вопрос по DDD. Только это вопрос не по DDD. В чистой архитектуре можно поискать ответы на эту проблему
Буду знать) до конца не разбираю чистый, слоистый, ддд
Могу подсказку дать. Идея DDD изложена во второй части книжки. В первой, где Агрегаты, Энтити и т.п. не DDD, это пример того, как можно, пользуясь идеями второй части, реализовать доменную модель. А можно и не делать доменную модель, можно обойтись транзакционными скриптами, и всё равно юзать идеи DDD из второй части
Есть разные способы 1)Вынести логику в модель - active record 2) DTO (для ORM) и репозиторий общие для базы на уровне data layer В домене модели разные и сервисы соответственно под контроллер ибо логика разная в них может быть Между слоями конверторы для сущностей
Бизнесовая логика в модели, или если точнее ты имел ввиду в сущностях, это не active record же. Обычно под active record имеют ввиду что сущность умеет сама себя сохранять и доставать из базы данных. Если я ничего не путаю.
Я это и имел ввиду Active Record - можно в микросервисах юзать или с небольших проектах,но если проект большой лучше от них отказаться ибо они в GodObject превращаются со временем
Обсуждают сегодня