所以我正在分解一個整體,我已經把它分解成服務。但是我遇到了一些有趣的事情。
我們有一個客戶被稱為“客戶”、“客戶”、“潛在客戶”的場景
它們的意思都是一樣的。
現在,在為服務設計端點時……我可以堅持每個服務都有并使用這些不同的術語……但感覺不對。
我們是否應該使用相同的術語,因為它們的意思相同?
uj5u.com熱心網友回復:
這很可能是不同限界背景關系的情況,其中可能使用不同的術語來指代相同的事物,或者相反,相同的詞可能具有不同的含義。理解和映射這些背景關系很重要,這樣可以最大限度地減少歧義,并明確這些有界背景關系之間的相互關系。分解單體應用是這類問題暴露出來的典型案例,在這種情況下,多個有界背景關系被迫一起存在并因此糾纏在一起——在分解單獨的服務時應該對這些問題進行整理,以確保良好的解耦。話雖如此,也可能只是隨機使用了不同的術語。無論哪種方式,您都應該爭取一種無處不在的語言;就明確和一致的術語與領域專家達成一致,然后在任何地方都堅持使用它;在代碼、檔案、通信中,你可以命名它。
uj5u.com熱心網友回復:
DDD 的一項原則是無處不在的語言。您應該請您的業務專家選擇一個被每個利益相關者誤解的可能性較小的,然后用那個替換所有其他人。
uj5u.com熱心網友回復:
這是正確的。在域驅動設計中,您有有限的背景關系,其中用不同的術語描述相同的事物。最著名的例子是購物車產品(目錄背景關系)、訂單專案(發票)、包裹專案(交付背景關系)等。或者您可以在不同的有界背景關系中擁有用戶、客戶、收件人等。它們可以具有完全相同的 id,如果您愿意,它們甚至可以位于單個查詢資料庫表中。你覺得不對,因為它違反了 DRY 原則,但其他原則可以比 DRY 更強。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/497425.html
