業務中臺是基于DDD方法論進行實踐并抽象出來的一種企業應用架構。項目的建模過程主要由技術建模構成。本文介紹示例項目中技術建模的相關內容。
背景信息
技術建模包括限界上下文劃分、領域模型、數據模型、服務模型等內容,主要目的是能夠基于DDD的建模方法論將業務模型轉化成技術模型,從而能高效指導中臺應用的開發。更多信息,請參見技術建模。
限界上下文
示例項目中預置了兩個限界上下文:商品上下文和用戶上下文,且兩個限界上下文中都包含簡單的領域模型、數據模型和應用服務,這兩個限界上下文僅作為示例參考,并未覆蓋完整的業務設計。本文以用戶上下文為例介紹限界上下文,幫助您了解BizWorks中各種對象的定義與使用方法。
在示例項目的限界上下文頁面,您可以看到系統自動創建的兩個限界上下文(商品上下文和用戶上下文)。單擊用戶上下文名稱后,查看v1.0.0版本的內容,具體如下圖所示:
更多信息,請參見創建與管理領域對象。
領域模型
在用戶上下文v1.0.0版本的領域對象頁面,單擊領域模型設計器,在模型設計器頁面您可以通過可視化方式查看模型情況。用戶上下文的領域模型中包含三個對象,分別是用戶(實體對象、聚合根)、賬號(實體對象)、地址(值對象)。具體如下圖所示:
更多信息,請參見使用領域模型設計器。
領域模型之間的關系可以在模型設計器中快速編輯,目前領域對象間的關系支持關聯、聚合、組合與繼承。
對象關系 | 1 : 0..* | 1 : 1..* | 1 : 0..1 | 1 : 1 |
關聯 | 適用 | 適用 | 適用 | 適用 |
聚合 | 適用 | 適用 | 適用 | 適用 |
組合 | 適用 | 適用 | 適用 | 適用 |
繼承 | 不適用 | 不適用 | 不適用 | 不適用 |
更多領域對象關系信息,請參見領域對象關系。
數據模型
在用戶上下文v1.0.0版本的數據模型頁面,單擊數據模型設計器,在數據模型設計器頁面您可以通過可視化方式查看數據模型信息。用戶上下文的數據模型與模型間關聯關系如下:
更多信息,請參見使用數據模型設計器。
數據模型中支持如下字段,模型間的關系可以通過引用字段來設置。例如地址是用戶對象的補充信息,地址和用戶對象之間存在關聯關系。那么地址表中用戶ID的字段類型需要選擇為Reference(引用),并且引用對象需要選擇為用戶數據模型中的userId,具體如下圖所示:
數據模型中目前支持的字段類型如下:
參數 | 說明 |
字段名稱 | 自定義字段的名稱。 |
編碼 | 英文字母和數字的組合,長度不得超過80個字符,需以小寫字母開頭,在數據模型中唯一。 |
表字段名 | 系統會根據數據模型編碼自動生成表字段名,表名用于生成DDL腳本。如果您需要修改生成規則,可以返回數據模型列表頁面,單擊設置表信息生成規則,在設置表信息生成規則面板更改設置。 |
字段類型 | 文本類:Text(文本)、LongText(長文本)。可選擇該字段是否為主鍵、是否必填、是否唯一,并設置默認值。 說明 如果某個字段被設置為主鍵,則唯一和必填都會自動被選中。 |
日期類:Date(日期)、DateTime(日期時間)、Timestamp(時間戳)。該類型字段不支持作為主鍵,并且默認值只能選擇固定的日期,不能使用Today()等相對時間或使用函數。 說明 設置默認值不會影響代碼生成和數據庫DDL語句。 | |
整數數值類:Integer(整數)、Long(長整型)。可選擇該字段是否為主鍵、是否必填、是否唯一,并設置默認值。 | |
小數數值類:Double(小數)、Decimal(高精小數)。該類型不支持作為主鍵,并且需要填寫小數位數。 | |
Boolean(布爾):支持取值True和False。 | |
Reference(引用):選擇該類型后需要選擇關聯的表和字段,該引用字段的實際類型與關聯字段的類型相同。其中,關聯的表是當前版本限界上下文已經保存的數據模型,關聯字段是關聯表內的字段。 | |
Sequence(序列):自增長序列,默認為Long類型,必填且唯一,可設置為主鍵,需要設置初始值。 |
更多信息,請參見創建與管理數據模型。
應用服務
應用服務的結構對象如同常用的DTO對象,已定義的結構對象可以作為應用服務方法的出入參使用。示例項目的用戶上下文中定義了賬號、用戶基礎信息結構對象、用戶身份驗證結構對象等結構對象,其中用戶基礎信息結構對象和用戶身份驗證結構對象用于在用戶信息獲取、用戶登錄驗證接口中作為出入參使用。
更多信息,請參見創建和管理結構對象。
應用服務可按照業務分類去定義同類型的應用服務方法,用戶上下文中定義了用戶服務、賬號服務和地址服務。例如:用戶服務可用于定義用戶信息獲取、更新等服務,賬號服務提供了各種登錄認證服務。
更多信息,請參見創建和管理應用服務。