детализация услуг - PullRequest
       2

детализация услуг

1 голос
/ 18 января 2012

Каков наилучший способ управления услугами, специфичными для домена? Например: в финансовом домене, если у меня есть глобальная служба «AccountCreation» или «CheckingAccountCreation», «CreditcardAccountreation» и т. Д.

Я пытаюсь сохранить их на глобальном уровне или на уровне продуктов. какой подход лучше?

1 Ответ

3 голосов
/ 18 января 2012

Вы, вероятно, должны сначала сосредоточиться на данных: какие данные есть, и какие данные должны оставаться согласованными.Затем сконцентрируйтесь на поведении этих данных.

В финансовом домене, если у меня будет глобальная служба "AccountCreation" или "CheckingAccountCreation", "CreditcardAccountreation" и т. Д.

В этом примере я бы сказал, что у вас есть услуга «учетная запись», потому что у вас явно есть несколько учетных записей - и вы, вероятно, должны убедиться, что, например, вы не дублируете номера учетных записей, применяете правила противодействия мошенничеству,управлять рабочим процессом создания и т. д.

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

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

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

В одной службе могут быть бизнес-правила, которые изменяют другую, например учетную запись.служба прослушивания «клиент стал студентом», объявленной службой поддержки, а затем выполняющая внутреннюю обработку.

...