Прежде всего, спасибо за ваш вклад в эту проблему. Я довольно новичок в разработке Driven Driven Design и ударяю себя по голове для решения некоторых проблем (я думаю, что они очень простые, я, конечно, чего-то не хватает).Разработка проблемы с моделью домена
Позвольте мне сначала описать свой домен немного. Я пытаюсь смоделировать типичную школу, в которой могут быть классные комнаты, каждая классная комната может иметь несколько разделов/групп и учащихся в каждой группе классов. Пользователями являются в основном школьный администратор и преподаватель. Администратор школы может создавать класс, учитель и ученик, тогда как преподаватель может создавать только группу и назначать студентов группе. Школа имеет глобальную идентичность, но классной комнаты нет. Класс имеет локальную идентичность, когда он является частью школьного образования. Классная комната уникальна только в классе.
Школа, безусловно, представляет собой совокупный корень с совокупностью классов внутри и отвечает за создание, удаление, обновление класса.
- Должен ли мы создать другой корень заполнителя для групп классов и классов (что, я думаю, не так, поскольку у них нет глобальных идентификаторов внутри домена).
- Создаем ли мы отдельный репозиторий для каждого из них?
- Должны ли мы обрабатывать создание/обновление класса, классной группы на уровне обслуживания?
- Нам нужно кэшировать данные, а поиск источников событий - хорошая идея для поддержания состояния в синхронизации. Вы видите какую-то проблему?
Любая помощь будет принята с благодарностью.
Спасибо за ваш ответ. Как вы думаете, я должен создать агрегатный корень для групп классов. Я не использую EF, поэтому может быть полезно, если у меня разные репозитории. Я думал, что источник событий - это место, где я могу фактически обрабатывать все изменения, чтобы правильно отражать в кэшированных объектах. Было бы здорово, если бы вы могли пролить свет на это. – Tariqulazam
Привет, извините за задержку. Имеет ли классная группа какой-либо смысл вне класса? –