COLA 是 Clean Object-oriented and Layered Architecture的縮寫,代表“整潔物件導向分層架構”,是來自阿里技術專家的DDD開源專案。COLA是一套用於幫助開發人員快速實踐DDD落地的專案架構。目前COLA已經發展到COLA 4.0。
在COLA架構中,比如我們想建立一個User,一套完整的呼叫鏈大概如下圖所示:
1. 前端發起Command請求,經過CommandBus分發給對應Command命令處理程式(在COLA 4.0版本中,CommandBus已經移除了);
2. 應用層服務接收Command請求,進行引數邏輯校驗;
3. 呼叫領域層中呼叫領域物件UserE的create方法;
4. 在create方法中呼叫infrastructure層中的gateway實現類,進行資料持久化。
下圖是領域物件Customer的方法,其中的create方法實現機制基本一致。
在COLA 4.0架構,更多的時候是在Command Executor(命令處理程式)中呼叫gateway實現類,完成資料的持久化操作,而不是呼叫領域物件的create方法。也就是說,create方法直接由gateway實現類提供。
關於COLA 4.0應用專案入門實踐、程式碼落地和原始碼下載,可以參考《COLA 4.x架構入門和專案實踐》技術專欄。內容由淺入深,收穫滿滿。
《COLA 4.x架構入門和專案實踐》技術專欄首先介紹了COLA框架的使用入門,以及與IDEA開發工具的整合等等;然後基於COLA架構,建立DDD經典示例專案-貨物運輸系統,詳細介紹了DDD領域建模、適配層、應用層、領域層和基礎設施層的程式碼開發、防腐層(ACL)設計與實現、領域事件(Domain Event)入門實踐、以及基於Kafka訊息中介軟體的訊息釋出和訂閱等等。內容由淺入深,從開發實戰出發,逐步掌握基於COLA架構和DDD領域建模思想構建複雜業務應用系統。