查看原文
其他

阿里开源的整洁面向对象分层架构

TJ 程序猿DD 2022-07-01

本周赠书:谁是《Java编程思想》之后的巅峰?《On Java》申请出战!

今天要给大家介绍一个不一般的应用架构:阿里开源的,COLA

如上图所示,COLA是Clean Object-Oriented & Layered Architecture的缩写,经过版本的迭代,目前已经更新到了最新的4.0版本。

COLA作为一个应用架构,其存在的主要功能在于:

  • 定义一套良好的结构;
  • 治理应用复杂度,降低系统熵值;
  • 从随心所欲的混乱状态,走向井井有条的有序状态。

其主要分为两个部分组成,分别是COLA架构和COLA组件。

先说说COLA架构,COLA架构的核心职责就是提供最佳应用架构的最佳实践,要达到这一点,需要优秀的分层结构、包结构定义以及不断地验证测试,以业务为核心,解耦外部依赖,分离业务复杂度和技术复杂度。

下面这张图可以稍稍带你明白COLA架构和COLA组件之间的关系:

COLA架构和传统的架构模式相比,除了先进的理念之外还内置了工具和实践指导,可以从cola-archetypes目录下找寻:

分别是

  • cola-archetype-service:用来创建纯后端服务的archetype。
  • cola-archetype-web:用来创建adapter和后端服务一体的web应用archetype。

COLA组件则提供了一些可以提高研发效率的有用组件合集,包括:

  • cola-component-dto 定义了DTO格式,包括分页
  • cola-component-exception 定义了异常格式,主要有BizException和SysException
  • cola-component-statemachine 状态机组件
  • cola-component-domain-starter Spring托管的领域实体组件
  • cola-component-catchlog-starter 异常处理和日志组件
  • cola-component-extension-starter 扩展点组件
  • cola-component-test-container 测试容器组件

如果想运用下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

2、运行应用

  • 在项目目录下运行mvn install(如果不想运行测试,可以加上-DskipTests参数)。
  • 进入start目录,执行mvn spring-boot:run。
  • 运行成功的话,可以看到SpringBoot启动成功的界面。
  • 生成的应用中,已经实现了一个简单的Rest请求,可以在浏览器中输入 http://localhost:8080/helloworld 进行测试。

非常方便,小伙伴们快来试一下吧

点击下方卡片,关注公众号“TJ君

回复“cola2022”,获取仓库地址

关注我,每天了解一个牛x、好用、有趣的东东


往期推荐

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存