DDD優秀實踐及總結 規範總結

2021-10-17 08:42:21 字數 885 閱讀 6667

1、盡量使用dp,將隱型概念顯性化;

2、將資料校驗、錯誤處理、屬於該dp的行為放到dp建立中;

3、抽象entity,entity中包含了資料和行為;

4、抽象第三方服務;

5、抽象中介軟體;

6、封裝業務邏輯,使用dp封裝跟entity無關的無狀態計算邏輯,使用entity封裝單物件的有狀態行為;

7、使用domain service封裝多物件邏輯;

8、entity和資料模型不需要完全一致,且盡量使用dp;

9、repository介面名稱不要使用底層實現的語法,操作entity物件,不操作底層do;

10、aggregate root的repository採用snapshot的方案,保留子entity的修改狀態,避免全部子entity的更新(可能會帶來資料不一致問題,要加入樂觀鎖);

11、entity建立使用constructor或者factory,並做引數強校驗;

12、entity盡量避免public setter;

13、aggregate root中的子entity只能通過聚合根保證子的一致性;

14、entity不可以強依賴其他entity或者domain service;

15、entity的行為只能影響本entity;

16、domain service包含三種形式:單物件策略型(通過方法入參傳入領域服務)、跨物件事務型、通用元件型。

17、使用策略模式封裝領域規則;

18、使用領域事件顯性化領域裡其他entity的變化;

20、乙個inte***ce層的類應該是「小而美」的,應該是面向「乙個單一的業務」或「一類同樣需求的業務」,需要盡量避免用同乙個類承接不同型別業務的需求;

23、針對於不同語意的指令,要避免cqe物件的復用,比如新增和更新;

DDD 主題交流會總結及計畫

思維碰撞才能更加進步 2015年5月16日 上週六 我們舉行了一次 ddd 主題的交流會,參會者主要是 enode 群友 以及部分園友,為什麼要搞這次交流會?原因很簡單,就是希望可以提供對 ddd 感興趣的開發者線下交流的機會,畢竟線上和線下是不同的,本次交流會的大致流程 自我介紹 netfocus...

移動開發實踐及 坑 總結

1.input placeholder問題 在chrome 模擬移動端除錯時 左邊圖 顯示的非常正常,但是在真機上 右邊圖 placeholder裡面的內容明顯靠上,非常的不美觀 在國外 對這個屬性的相容性處理,那就是不要設計input的line height或者設定line height為norm...

移動開發實踐及 坑 總結

又一次懶癌發作,好久沒有更新部落格了。做過很多移動端的專案,在開發除錯過程中,一款好的除錯工具會讓效率大大提高。博主之前已經推薦了一款神器 下面,就總結一下移動端遇見的坑。1.input placeholder問題 在chrome 模擬移動端除錯時 左邊圖 顯示的非常正常,但是在真機上 右邊圖 pl...