Где компоненты, связанные с поведением приложений, соответствуют DDD? - PullRequest
2 голосов
/ 10 сентября 2011

Если я разрабатываю приложение с использованием DDD, куда идут компоненты инфраструктуры и поведения?Например, управление пользователями, пользовательские настройки, разрешения, меню приложений и т. Д.

Эти компоненты на самом деле не имеют ничего общего с бизнес-требованиями, выполняемыми моим доменом, но они по-прежнему являются обязательными элементами моего приложения.Многие из них также требуют настойчивости.

Ответы [ 2 ]

1 голос
/ 12 сентября 2011

Что ж, если вы обнаружите, что ваши прецеденты редко требуют информацию из вашего основного домена, объединенного с конкретными приложениями, вы, вероятно, можете разделить ее на отдельную базу данных. Получите доступ к этой информации через уровень службы приложений, поскольку предполагается, что этот уровень предназначен для удовлетворения потребностей вашего приложения. Если это включает в себя сохранение профиля пользователя и т.д., это нормально.

Но вы помните, что если у вас произошел сбой инфраструктуры и вы хотите выполнить откат с некоторыми журналами транзакций или резервными копиями базы данных, вы, вероятно, захотите откатить все сохраненные данные. Таким образом, эти домены легче использовать в одной базе данных. Плюсы и минусы - всегда компромисс ...

Если я знаю, что это приложение будет незначительно взаимодействовать со своей средой, я поместил бы это в одну базу данных и позволил бы уровню обслуживания приложений взаимодействовать с клиентами.

Если я знаю, что будет несколько приложений / клиентов, я мог бы рассмотреть возможность разделения базы данных так, чтобы пользовательские особенности приложения Webb сохранялись в отдельной базе данных. Очень сложно сказать, так как у меня нет обзора всех требований.

/ Magnus

1 голос
/ 10 сентября 2011

Довольно нормально иметь в своем проекте не доменные компоненты вместе с доменом - ведь не все ориентировано на бизнес-домен.Где они принадлежат, зависит от того, как вы структурируете свое решение.В большинстве случаев я склонен следовать Onion Architecture , поэтому вся моя логика обеспечивается Application Services , независимо от того, ориентирована она на домен или не домен.

...