上一篇我們講了DDD的核心概念(附上鏈接),并且設計了我們的上下文映射圖,那么接下來就準備開始立項了,本篇文章的部分知識點可能對一部分人來說比較基礎,可以選擇性的閱讀。
在這之前我們平常用的最多的應該就是3層架構了,這里也不展開描述了,大家都是在3層的陪伴下一路走來的~
DDD所使用的傳統分層架構是松散分層,也就是上層可以訪問任意層級的下層,而不是僅限于當前層的下一層,這是有別于3層架構的。如下面2張圖的區(qū)別圖:
【圖1】
【圖2】
Application:這層的職責是對接收到的數據做一些非業(yè)務性驗證,事務的控制,最重要的是協調多個聚合之間的操作。這里應該可以清晰的表達出整個操作所做的事情,并且與通用語言是一致的。
Domain:這一層是DDD設計的核心,這里不但需要精確合理的表達出通用語言的每一個細節(jié),另外如何把對象合理的定義為聚合、實體、值對象也是重中之重。這里不但關系著整個項目的復雜度,也是戰(zhàn)術建模的體現,任何的一行代碼都是對業(yè)務的準確定義,應該是恰到好處。一個清晰簡潔的戰(zhàn)術建模才可以應對后續(xù)的快速變化。
Infrastructure:這里是輔助性的一層,也是整個項目的基礎。好比這里存放著一磚一瓦,最終建造什么模樣的高樓在于用它的地方。主要包括,倉儲的實現(我們存放數據的地方)、一些通用的支撐性類庫。
二、六邊形架構
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26