Перспективы сущности
-
03-07-2019 - |
Вопрос
Контекст:Итак, я пытаюсь построить смехотворно сложную модель предметной области.Говоря с пользователями, существует несколько способов использования системы (например:один из способов — с точки зрения сотрудника;другой способ – с точки зрения работодателя).На самом деле это несколько приложений, повторно использующих основной домен.
Вопрос:Неправильно ли создавать домен с нескольких точек зрения?Например, создание домена по мере ведения бизнеса будет означать создание всевозможных классов отношений, которые несут дополнительную информацию об объекте и так далее...Однако при рассмотрении конкретной точки зрения картина становится гораздо яснее, поскольку большинство классов отношений можно включить в родительскую сущность.
Идеи?Опровержения?Я совсем не в теме?
Решение
Нет, это абсолютно уместно.Эван в своей книге называет эти «перспективы» ограниченными контекстами.
Вместо того, чтобы создавать действительно сложную модель предметной области, попробуйте создать простую модель, которая действительно хорошо обращается к предметной области определенным образом.Ограниченные контексты могут быть связаны вместе, образуя сеть меньших, более простых и прямых моделей предметной области.
Другие советы
Я не думаю, что вам следует заранее определить «основной домен».Пусть это проявляется в процессе разработки.Кроме того, все, что не является общим для двух (или более) точек зрения, не должно быть в «ядре».
Например, постройте часть системы с точки зрения сотрудника.Это может побудить вас создать такие сущности, как «Проект», «Задача» и «Клиент».Затем постройте часть с точки зрения сотрудника.Это может побудить вас создать новые сущности и повторно использовать «Проект» и «Задачу».Именно тогда я переместил «Проект» и «Задачу» в «основную библиотеку», общую для остальной части системы.
Иногда вы найдете общие сущности, но связанные по-разному.В этом случае отношения должны быть внедрены контекстом, а не встроены в сами сущности.