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