Прочитав DDD Эрика Эванса, я пытаюсь применить его к проекту, которым управляю.Есть некоторые пользовательские данные запроса, и я не совсем уверен, как реализовать это в DDD.
Например, если пользователь запрашивает уведомления, приложение должно сообщить пользователю, читается ли каждое сообщение или нет.Обычно в таких ситуациях я отвечал бы данными, которые выглядят следующим образом:
{
"notices": [
{"content": "foo", "is_read": true},
{"content": "bar", "is_read": false}
]
}
Предположим, что существует Notice
сущность и Read
сущность, которая сохраняет, если User
прочитал ее.Также предположим, что есть очень много пользователей, читающих уведомление, что поиск всех пользователей для is_read
не является эффективным способом.
Поскольку сущность Read
никогда не запрашивается без сущности Notice
, я мог бы поместить ее в совокупность Notice
.Затем реализуйте функцию запроса, принимая запрашивающего пользователя в качестве параметра.
Или я мог бы разделить NoticeRepository
и ReadRepository
, запросить уведомления, а затем объединить их на прикладном уровне с чтениями, запрашиваемыми с идентификаторами уведомлений.
Первый вариант, по-видимому, предполагает, что пользователь запрашивает уведомления и портит уровень домена с помощью логики приложения.С другой стороны, второй вариант дает мне ощущение, что я реализую простую функцию излишне сложным способом.И я не могу сейчас придумать другие варианты .. Что может быть лучшей практикой для такого случая?