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

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

阿里开源的整洁面向对象分层架构_第1张图片

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

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

  • 定义一套良好的结构;

  • 治理应用复杂度,降低系统熵值;

  • 从随心所欲的混乱状态,走向井井有条的有序状态。

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

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

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

阿里开源的整洁面向对象分层架构_第2张图片

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 进行测试。

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

阿里开源的整洁面向对象分层架构_第3张图片

 

你可能感兴趣的:(后端,架构,java,开发语言,经验分享,数据库)