iT邦幫忙

2021 iThome 鐵人賽

DAY 27
0
自我挑戰組

馬克的軟體架構小筆記系列 第 27

30-27 之 DDD 戰略設計 3 - 實作方法之 Domain Storytelling 領域敘事 ( 未完成 )

上一篇我們簡單的說明完如何使用 Event Storm 來完成 DDD 戰略的三個產出 :

  • 分析 Domain 並切成 SubDomain
  • 定義解決方案的邊界 Bounded Context
  • 定義關係 Context Map

接下來我們要介紹另一個方法也是能完成以上三件事情的 :

Domain Storytelling

Domain Storytelling 分析流程

Step 1. 畫 Domain Storytelling

基本上我覺得他很像是流程圖,但是是以 domain 的概念來畫。

然後他有基本三元素 :

  • 圖示
    • Actors ( 參與者 ) : 使用者、系統、第三方服務。
    • Work Object ( 領域活動物件 ) : 例如使用者要看『 產品 』。那個產品就是 Work Object。
  • 箭頭
    • Activities ( 活動行為 ) : 箭頭、並且用動詞來形容。
  • 文字/數字
    • 數字代表流程
    • 文字代表說明

假設有個需求是 :

用戶想觀看產品,然後它可以在網頁上看到

那這樣簡單的化一下,就如下圖所示。

https://ithelp.ithome.com.tw/upload/images/20211012/20089358epeK24PpjM.png

注意事項 1 - 沒有分支與選擇

基本上在畫圖時,不會有分支或是選擇,它會優先選擇最重要的一張圖 ( Happy Path ),接下來如果還有其它重要的方案在畫另外一張圖,當然你也可以使用 Annotations 說明一下選擇或分支,但記好,如果是重要的流程或是複雜建議還是多畫一張。

注意事項 2 - 文法

  • A → work on → W
  • A → work on → W → using → V
  • A → hands over → W → to B
  • A → hands over → w → to B And C
  • A → collaborate on w ← collaborate on ← B

Step 2. 分析 Domain 與 Bounded Context

Step 3. 產生 Context Map

範例

這裡我們以之前 event storm 的範例來說明。

使用者可以看到畫面上有不同的產品,產品包含影音課程、文章、直播,並且可以購買與觀看,並且購買完成後,並且會寄信給購買者,還會分潤給老師們。

這裡我們用到以下的連結,他可以幫助我們簡單的畫出 Domain Storytelling

https://www.wps.de/modeler/

https://ithelp.ithome.com.tw/upload/images/20211012/20089358AU5KzKiuJO.png

然後我寫到這我發現上面這張圖,好難整理 domain… 我在努力研究一下這個工具 ,我覺得下面這個演講說的非常清楚,建議去看。

DDD 领域驱动设计

參考


上一篇
30-26 之 DDD 戰略設計 2 - 實作方法之 Event Storm
下一篇
30-28 之 DDD 戰術篇1 - Entity 與 Value Object
系列文
馬克的軟體架構小筆記29

尚未有邦友留言

立即登入留言