COLA 是 Clean Object-Oriented and Layered Architecture的縮寫,代表“整潔物件導向分層架構”,是來自阿里技術專家的開源專案。目前COLA已經發展到COLA 4.0。
COLA既是架構,也是框架。COLA框架繼承了DDD的設計思想。
COLA 開源地址:https://github.com/alibaba/COLA
一、為什麼說COLA是架構?
在架構設計上,COLA主張像六邊形架構那樣,使用埠-介面卡去解耦技術細節;主張像洋蔥架構那樣,以領域為核心,並透過依賴倒置反轉領域層的依賴方向。
從COLA應用處理響應一個請求的過程來看,COLA使用了CQRS來分離命令和查詢的職責,使用擴充套件點和後設資料來提供更高應用的可擴充套件性。
下圖是COLA架構示意圖,供參考:
COLA架構的核心職責就是定義良好的應用結構,提供最佳應用架構的最佳實踐。透過不斷探索,發現良好的分層結構,良好的包結構定義,可以幫助我們治理和應對複雜的業務邏輯。
二、為什麼說COLA是框架?
是因為開源COLA應用中還提供了一些非常有用的通用元件,這些元件可以幫助我們提升研發效率。
這些功能元件被收攏在cola-components目錄下面。
三、基於COLA開發經典DDD專案應用
下圖是基於COLA 架構建的DDD經典示例應用-貨物運輸系統(Cargo Tracker Application)的程式碼結構:
《COLA 4.x架構入門和專案實踐》技術專欄詳細講解COLA架構的使用,領域驅動設計DDD中領域模型的開發,以及DDD經典示例專案-貨物運輸系統(Cargo Tracker Application)程式碼實現細節。