Итак, я новичок в DDD, и я пытаюсь правильно разработать приложение. Но я испытываю трудности с определением совокупных корней.Как определить совокупные и агрегированные корни и ссылку между агрегатами
Моя потребность более или менее дерево
*Customers
*Each customer can have 0 or more licenses
*Each license can have 0 or more courses
*Each course can have 0 or more lessons
*Each lesson can have 0 or more slides and videos
Наконец у меня есть тесты/тесты, которые могут быть связаны с почти ничего, даже некоторое время на видео в уроке.
Независимо от того, как я думаю об этом, я только получить, что Клиент будет совокупный корень для агрегата, который содержит [Клиент, лицензия, курс, урок, слайд, видео]
Но это довольно большой агрегат и я понял, что следует избегать больших агрегатов.
Тогда викторина будет представлять собой совокупность вопросов, ответов и т. Д. В качестве второго вопроса я могу спросить, как должна выглядеть ссылка? потому что позволяет сказать, что я хочу, чтобы викторина появлялась в видео через 4 минуты. Ну, тогда моя викторина должна связать это видео и сохранить время. Но это видео находится в глубине другой совокупности (по клиенту, лицензии, курса, урока) и не должно быть связано напрямую с этим агрегатом викторины.
Так как я могу это решить. Я заказал свою большую книгу DDD, но она не будет здесь некоторое время. Если бы я мог понять это раньше, это было бы здорово!
Я не думаю, что это важно, но я использую .net C# mvc, с шаблоном ef5 и репозиторием.
Я смотрел на CQRS и считал, что это слишком много для моего небольшого проекта. Но я начинаю понимать, почему я был там неправ. Я также начинаю понимать, что вы не видите, как просто контейнеры, и как они хранятся. Мне нужно учиться! –