Domain Model 範例 - daniel-qa/Vue GitHub Wiki
範例主題:學生資料管理系統
我們先定義 Domain Model(不是 UI、不是 DB)
{
"domain": "Student",
"description": "學生基本資料",
"fields": [
{
"name": "studentName",
"label": "姓名",
"type": "string",
"required": true
},
{
"name": "age",
"label": "年齡",
"type": "number",
"min": 6,
"max": 18
},
{
"name": "grade",
"label": "年級",
"type": "enum",
"options": ["一年級", "二年級", "三年級"]
}
]
}
👉 這不是表單 👉 不是 API 規格 👉 是 業務語言模型
為什麼它是 Domain Model?
因為它符合 DDD 對 Domain Model 的三個核心定義:
1️⃣ 它描述的是業務概念,不是技術概念
"domain": "Student",
"description": "學生基本資料"
這是業務語言,不是 DB table,不是 API DTO。
2️⃣ 它使用業務語彙(Ubiquitous Language)
studentName
年齡
年級
這些是業務溝通語言,不是程式語言。
3️⃣ 它具有語意與約束
required
min
max
enum
這些是業務規則的一部分。