20190101.DDD笔记
生活随笔
收集整理的這篇文章主要介紹了
20190101.DDD笔记
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
建立領(lǐng)域模型步驟
?
三原則
?
實(shí)踐
1.信息2.業(yè)務(wù)場景圖&業(yè)務(wù)流程圖
- 業(yè)務(wù)事件
- 時(shí)間序列
- 所有的事件
- 命名:聚合#動(dòng)詞的過去時(shí)
- 來源:
```
```
- 注意:
```
```
- 命名: 動(dòng)詞
- 定義:生命周期相同的領(lǐng)域?qū)ο?#xff08;實(shí)體、值對象)的集合。
- 方法:可在cmd和event之間夾出聚合。
```
```
- 來源:領(lǐng)域?qū)ο?#xff0c;來源于業(yè)務(wù)概念。
- 值對象:無id,狀態(tài)不可變 DDD中的值對象與C#的struct很像相似,是不是值對象應(yīng)該使用struct? 答:struct 作為一種技術(shù)選擇,有時(shí)候也許可行,但或許更多時(shí)候是不可行,比如:struct不能為空,使得不能與領(lǐng)域?qū)ο髮?yīng)。
- 實(shí)體:有id,有狀態(tài)
- 識別:同一個(gè)對象,有時(shí)表達(dá)的含義不同時(shí),此時(shí)可能需要兩個(gè)限界上下文。
- 盡量大
- 跨限界上下文訪問:RPC、REST、MQ
- 盡量使子域和限界上下文對應(yīng)。
- 子域、限界上下文對應(yīng)項(xiàng)目(微服務(wù)的話,對應(yīng)應(yīng)用服務(wù))
- 聚合對應(yīng)actor(或者對象類)
- 推薦盡量一個(gè)實(shí)體對應(yīng)一個(gè)聚合對應(yīng)一個(gè)actor
- 應(yīng)用服務(wù)對應(yīng)Controller API
- 領(lǐng)域事件對應(yīng)事件
- 實(shí)體反映在數(shù)據(jù)庫表結(jié)構(gòu)
- Repository類似DAO
- DTO在應(yīng)用層
RESTful架構(gòu)下的API設(shè)計(jì)
1. 從命令出發(fā)
2. 從資源出發(fā)
RESTful架構(gòu)下“資源”(resource)識別至關(guān)重要。在整個(gè)DDD建模中,聚合和實(shí)體都是我們抽象資源的重要入手點(diǎn)。
這種方法比較適合識別Domain層的API設(shè)計(jì)。
3. 從業(yè)務(wù)流出發(fā)
API 最終都要滿足業(yè)務(wù)的需求,所以也有API設(shè)計(jì)方法從流程節(jié)點(diǎn)的分析出發(fā)。
這種設(shè)計(jì)方法更適合Application層的API設(shè)計(jì)
4. 定義關(guān)鍵詞動(dòng)詞描述
(如果有不正確的地方,希望童鞋指正)
?(如果有不正確的地方,希望童鞋指正)
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/CharlesZHENG/p/10205258.html
總結(jié)
以上是生活随笔為你收集整理的20190101.DDD笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bzoj3786: 星系探索
- 下一篇: 栈的实现