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架构示意图,供参考:
![](https://img2020.cnblogs.com/blog/1395/202108/1395-20210811232319484-1371248704.png)
COLA架构的核心职责就是定义良好的应用结构,提供最佳应用架构的最佳实践。通过不断探索,发现良好的分层结构,良好的包结构定义,可以帮助我们治理和应对复杂的业务逻辑。
二、为什么说COLA是框架?
是因为开源COLA应用中还提供了一些非常有用的通用组件,这些组件可以帮助我们提升研发效率。
这些功能组件被收拢在cola-components目录下面。
![](https://img2020.cnblogs.com/blog/1395/202108/1395-20210811232319080-829424663.png)
三、基于COLA开发经典DDD项目应用
下图是基于COLA 架构建的DDD经典示例应用-货物运输系统(Cargo Tracker Application)的代码结构:
![](https://img2020.cnblogs.com/blog/1395/202108/1395-20210811232319098-646983229.png)
《COLA 4.x架构入门和项目实践》技术专栏详细讲解COLA架构的使用,领域驱动设计DDD中领域模型的开发,以及DDD经典示例项目-货物运输系统(Cargo Tracker Application)代码实现细节。
![](https://img2020.cnblogs.com/blog/1395/202108/1395-20210811232210563-1801528619.png)