в соответствии с фичей и туда кладу Model, UseCase, Action, {Doctrine|OtherInfrastructure|...} и тд. Есть пара вопросов:
1) Если у меня появляется нечто, агрегирующее данные из нескольких фич, например, ReadModel, читающая из-под двух агрегатов, мне для нее отдельную фичу создавать? Предполагаю, что да. В ней не будет Model, но будет UseCase, ReadModel и Action.
2) Появляется необходимость в чем-то типа Shared. Где общий инфраструктурный код для всего проекта: EventTrait для моделей, functions.php с хелперами, универсальный ArgumentResolver для DTO и мало ли что еще, что когда-нибудь может стать либой/бандлом, а может и не стать. Такую "фичу" ок добавлять?
1. да, это ж отдельная фича. так будут явно проявляться зависимости. Есть кейсы сложнее где совсем не очевидно, но в любом случае стоит допускать что какая-то агрегация будет. Тут исходить надо из того для чего она используется. 2. Я пока остановился на модуле Infrastructure и пихаю туда всякие такие штуки. Идея в том что бы нутро этого модуля если потребуется можно разобрать на композер пакеты. Мол если можно мысленно представить что вжух и нет модуля - то ок)
Обсуждают сегодня