7. 對於某個特定業務領域的軟件模型,通常透過 Model 實現,這些 Model 同時包含數
據與行為能力,並準確表達該有的業務含義
[x] 單一的、內聚的、全功能式的模型
[o] Domain Model 的開發通常是用來專注於整個 business domain 的一個特定區塊
全能的domain model 是困難且易失敗的,對領域的拆解有助於我們理解與開發。
8. Domain 中存在著兩個空間
Problem Space
● Core Subdomain
● Supporting Subdomain
● Generic Subdomain
Solution Space
Domain
Core
Subdomain
SubdomainSubdomain
Bounded
Context
Bounded
Context
Bounded
Context
Bounded
Context
= UbiquItous Language
11. Bounded Context
● 語意上的邊界
● Ubiquitous Language 就在這之中
● 讓裡面的模型概念、包含屬性操作,都擁有特殊的含義
● EX: Bank Account v.s. Literary Account
● 還有其他例子嗎?
12. ● 理想:subdomain 與 bounded context 一對一
● 透過 problem space 減少判斷錯誤
● 評估 problem space 與 solution space 來釐清
○ 你的 core subdomain 的名稱與目標
○ 你的 core subdomain 包含哪些概念
○ 這個 core subdomain 的 supporting subdomain 與 generic subdomain 為何
○ 如何在各個子領域安排工作
○ 如何組出一個團隊
13. Strategic Design 戰略設計
● 理想上,我們會希望建立一個單一強大的 model 完整處理所有功能... but 不可
能! 實際上將之分成多個 Model 會更好開發。
● 戰略設計就是一系列管理與開發多個 domain model 的方法。
● Think in Context