2012-01-18 80 views
1

什麼是管理域特定服務的最佳方式是什麼?例如:在金融領域,我是否應該擁有全球服務「AccountCreation」或「CheckingAccountCreation」,「CreditcardAccountreation」等。服務粒度

我正在努力將其保持在全球水平還是保持在產品級別。最好的辦法是什麼?

回答

2

你或許應該集中在數據第一:是什麼樣的數據有,哪些數據需要保持一致。然後重點關注數據的行爲。

在金融領域,我應該有一個全球性的服務「AccountCreation」或「CheckingAccountCreation」,「CreditcardAccountreation」等

在這個例子中,我會說,你有一個「賬戶」服務,因爲你清楚有一些賬戶 - 你可能必須確保,例如,你不重複的賬號,申請反欺詐規則,管理創造的工作流程等

你的例子找出一些行爲:創建一個支票賬戶,創建一個信用卡賬戶。這些將適當地發送給服務的命令,因爲它們會導致服務所擁有的數據發生變化。

如果添加一個「客戶」的服務,不過,這將是從賬戶服務獨特:它不必須是與該帳戶服務一致,只是有從賬戶客戶通過ID的參考。

你可能還沒有共享的行爲觸及兩個部分 - 更新有關客戶資料應不能觸及他們的帳戶(直接)的詳細信息,並更新帳戶不改變客戶的詳細信息。

你可能有一個服務業務規則更改其他,如賬戶服務監聽「客戶成了學生」由客戶服務宣佈,然後做一些內部處理。

+0

對此答案+1。關注數據。把需要在事務上一致的數據放在一起。一旦你做了分析並將這些數據組合在一起,你的服務就會顯示出來。 – Dan 2013-06-06 02:00:25