2003年,DDD(領域驅動設計)這一軟件開發的方法與願景經由建模專家 Eric Evans 的經典著作Domain-Driven Design: Tackling Complexity in the Heart of Software 正式面世,當即獲得了廣泛關注和高度評價。18 年間,網上越來越多關於 DDD的文章和討論。為什么我們現在還不停地討論 DDD?為什么DDD仍然如此重要?
領域驅動設計常以戰略設計與戰術設計來將整個領域展現得淋漓盡致,其作用范圍既面向業務也面向技術。從戰略角度去規划系統、划分領域。而從戰術角度則從技術層面來指導我們該如何去設計。
隨着新開發技術的不斷發展,尤其是微服務和容器化技術的引入,我們的應用系統趨向於更加優雅的設計。DDD設計思想在項目落地實踐過程中也在不斷進化。
COLA 是 Clean Object-Oriented and Layered Architecture的縮寫,代表“整潔面向對象分層架構”,是來自阿里技術專家的開源項目。目前COLA已經發展到COLA 4.0。COLA 4.0本質就是:代碼規范+可復用組件+充血領域模型。

《COLA 4.x架構入門和項目實踐》技術專欄首先介紹了COLA框架的使用入門,以及與IDEA開發工具的集成等等;然后基於COLA架構,創建DDD經典示例項目-貨物運輸系統,詳細介紹了DDD領域建模、適配層、應用層、領域層和基礎設施層的代碼開發、防腐層(ACL)設計與實現、領域事件(Domain Event)入門實踐、以及基於Kafka消息中間件的消息發布和訂閱等等。內容由淺入深,從開發實戰出發,逐步掌握基於COLA架構和DDD領域建模思想構建復雜業務應用系統。
DDD 不涉及具體的開發技術,但也並非對技術漠不關心。

貨物運輸系統分為四個獨立的微服務應用:分別為預訂微服務(bookingms)、運輸微服務(routingms)、跟蹤微服務(trackingms)和裝卸微服務(handlingms),如圖所示。

本技術專欄主要內容如下:
- 開源COLA 4.0架構和DDD領域驅動設計入門介紹
- 體驗COLA示例應用項目craftsman:環境准備、啟動運行和代碼分析(1)
- 體驗COLA示例應用項目craftsman:環境准備、啟動運行和代碼分析(2)
- 如何使用COLA框架創建業務應用項目?
- COLA框架源碼編譯發布到本地Maven倉庫的完整過程
- COLA項目模板和IDEA開發工具的集成
- 基於COLA架構創建DDD經典示例項目Cargo貨物運輸系統和領域建模
- COLA架構和DDD經典示例項目:領域模型中命令和命令處理程序的實現
- COLA架構和DDD經典示例項目:Gateway接口和實現
- COLA架構和DDD經典示例項目:創建MySQL包裹預訂數據庫表和訪問賬號
- COLA架構和DDD經典示例項目:自動生成數據訪問層代碼
- COLA架構和DDD經典示例項目:GatewayImpl實現類的開發
- COLA架構和DDD經典示例項目:數據流轉圖和轉換工具類開發
- COLA架構和DDD經典示例項目:服務接口和應用服務實現類的開發
- COLA架構和DDD經典示例項目:啟動應用並發起包裹預訂請求
- COLA架構和DDD經典示例項目:包裹查詢服務的實現
- 基於COLA架構創建運輸微服務應用和DDD領域建模
- 基於COLA架構開發和實現運輸微服務應用
- 防腐層設計與實踐:隔離限界上下文之間的耦合,實現干凈的領域模型
- 防腐層設計與實踐:在包裹預訂服務中通過防腐層實現包裹路由服務
- 領域事件入門實踐:包裹預訂事件和包裹路由事件建模
- 領域事件入門實踐:基於Kafka消息中間件發布領域事件
- 基於COLA架構創建包裹跟蹤微服務應用和DDD領域建模
- 領域事件入門實踐:基於Kafka消息中間件監聽包裹預訂事件和包裹路由事件
- 領域事件入門實踐:監聽包裹路由事件的完整實現
- 包裹預訂、運輸、跟蹤服務之間的聯調測試
- 基於COLA架構創建包裹裝卸微服務應用和DDD領域建模