前面已經介紹了一些理論,現在開始針對我們的主題——To-Do List 做一些分析。
先說好,實際進行 DDD 設計時並沒有這麼簡單,我會忽略許多設計元素,只講述我自己認為的重點。畢竟這裡的實戰只有我一個人,和一個簡單的 Domain。
我想像中的 To-Do List 會有以下功能:
To-Do List 是產品的核心功能,其他的帳號管理只是輔助工具。因此,我們可以簡單將功能拆分為兩個 Domain:
為了分析這些功能,我們可以簡單地使用不同顏色的便利貼來代表不同的意義:
大致上,我們可以這樣子使用。
這邊只展示了一些最基本的便利貼,其他還可以使用
接著,我們回到一開始描述的功能,並貼上相應的便利貼:
在這之後,我們把關鍵的 Command 和 Event 根據 Service 和 Aggregate 整理一下,去掉重複的物件,劃分相依性,最後寫上 Context Map。
這樣,一個邊界圖就完成了。看到成果後,我自己都覺得這麼直觀的東西,幹嘛要寫得這麼複雜呢?不過,現實問題通常不會這麼直觀,這裡主要是希望讀者能夠理解 DDD 的戰略設計 如何一步步釐清產品需求中的所有細節,並規劃出合理的架構設計。
接下來的篇章,將會分析與實作 Tactical Design,目標是設計出 Aggregate Model 和 Data Model。結束後就可以開始實作啦!