COLA 是 Clean Object-Oriented and Layered Architecture的縮寫,代表“面向整潔對象的分層架構”。 目前COLA已經發展到 COLA 4.0
。
COLA分為兩個部分,COLA架構和COLA元件。
COLA架構
COLA 概述
架構的意義 就是 要素結構:
- 要素 是 組成架構的重要元素;
- 結構 是 要素之間的關系。
而 應用架構的意義 就在于
- 定義一套良好的結構;
- 治理應用複雜度,降低系統熵值;
- 從随心所欲的混亂狀态,走向井井有條的有序狀态。

COLA架構就是為此而生,其核心職責就是定義良好的應用結構,提供最佳應用架構的最佳實踐。通過不斷探索,我們發現良好的分層結構,良好的包結構定義,可以幫助我們治理混亂不堪的業務應用系統。
經過多次疊代,我們定義出了相對穩定、可靠的應用架構:COLA 4.0
COLA Archetype
好的應用架構,都遵循一些共同模式,不管是六邊形架構、洋蔥圈架構、整潔架構、還是COLA架構,都提倡以業務為核心,解耦外部依賴,分離業務複雜度和技術複雜度等。
COLA架構差別于這些架構的地方,在于除了思想之外,我們還提供了可落地的工具和實踐指導。
為了能夠快速建立滿足COLA架構的應用,我們提供了兩個
archetype
,位于
cola-archetypes
目錄 下:
-
:用來建立純後端服務的cola-archetype-service
archetype
-
:用來建立cola-archetype-web
和後端服務一體的adapter
應用web
archetype
COLA Components
此外,我們還提供了一些非常有用的通用元件,這些元件可以幫助我們提升研發效率。
這些功能元件被收攏在
cola-components
下面。到目前為止,我們已經沉澱了以下元件:
元件名稱 | 功能 | 版本 | 依賴 |
| 定義了 格式,包括分頁 | 1.0.0 | 無 |
| 定義了異常格式, 主要有 和 | ||
| 狀态機元件 | ||
| 托管的領域實體元件 | ||
| 異常處理和日志元件 | 、 元件 | |
| 擴充點元件 | ||
| 測試容器元件 |
如何使用COLA
1. 建立應用
執行以下指令:
mvn archetype:generate \
-DgroupId=com.alibaba.cola.demo.web \
-DartifactId=demo-web \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.alibaba.demo \
-DarchetypeArtifactId=cola-framework-archetype-web \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeVersion=4.0.1
指令執行成功的話,會看到如下的應用代碼結構:
注:也可以使用阿裡雲的應用生成器:
https://start.aliyun.com/bootstrap.html生成cola應用。
2. 運作應用
- 在
目錄下運作項目
(如果不想運作測試,可以加上mvn install
參數)。-DskipTests
- 進入
目錄,執行start
運作成功的話,可以看到mvn spring-boot:run
啟動成功的界面。SpringBoot
- 生成的應用中,已經實作了一個簡單的
請求,可以在浏覽器中輸入 http://localhost:8080/helloworld 進行測試。Rest
如果要生成不是
web
工程而是
service
工程也類似,執行的是下面的指令:
mvn archetype:generate \
-DgroupId=com.alibaba.cola.demo.service \
-DartifactId=demo-service \
-Dversion=1.0.0-SNAPSHOT \
-Dpackage=com.alibaba.demo \
-DarchetypeArtifactId=cola-framework-archetype-service \
-DarchetypeGroupId=com.alibaba.cola \
-DarchetypeVersion=4.0.1