DDD開源COLA應用架構-實現分離業務邏輯和技術細節

Rickie發表於2021-07-27
COLA(Clean Object-oriented & Layered Architecture)架構是阿里團隊自主研發的應用架構,目前已經開源( https://github.com/alibaba/COLA )。
在COLA的設計中,充分汲取了經典架構的優秀思想。除此之外,阿里補充了規範設計和擴充套件設計,並且使用Archetype的方式,將架構固化下來,以便可以快速地在開發中使用。
DDD開源COLA應用架構-實現分離業務邏輯和技術細節
 
 
分層設計(Layered Architecture)
COLA的分層是一種改良了的三層架構。主要是將傳統的業務邏輯層拆分成應用層、領域層和基礎實施層。如下圖所示,左邊是傳統的分層架構,右邊是COLA的分層架構。
DDD開源COLA應用架構-實現分離業務邏輯和技術細節
 
其每一層的作用範圍和含義如下:
1)展現層(Presentation Layer):負責以REST的格式接受Web請求,然後將請求路由給Application層執行,並返回檢視模型(View Model),其載體通常是DTO(Data Transfer Object);
 
2)應用層(Application Layer):主要負責獲取輸入,組裝上下文,做輸入校驗,呼叫領域層做業務處理,如果需要的話,傳送訊息通知。當然,層次是開放的,若有需要,應用層也可以直接訪問基礎實施層;
 
3)領域層(Domain Layer):主要是封裝了核心業務邏輯,並透過領域服務(Domain Service)和領域實體(Entities)的函式對外部提供業務邏輯的計算和處理;
 
4)基礎實施層(Infrastructure Layer)主要包含Tunnel(資料通道)、Config和Common。這裡阿里使用Tunnel這個概念來對所有的資料來源進行抽象,這些資料來源可以是資料庫(MySQL,NoSql)、搜尋引擎、檔案系統、也可以是SOA服務等;Config負責應用的配置;Common是通用的工具類。
 

相關文章