1 Star 0 Fork 1

janusor/cola

forked from 熊磊/cola 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

https://www.freesion.com/article/8793928270/

COLA是一套用于帮助你实践DDD落地的项目架构,在开发COLA之前,我们先再熟悉一下基于COLA创建的项目的结构:

image.png

demo-client:

  • api:存放的是对外暴露的接口
  • dto.domainmodel:用来做数据传输的轻量级领域对象。
  • to.domainevent: 用来做数据传输的领域事件。

demo-app:

  • service:接口实现的facade,没有业务逻辑,可以包含对不同终端的adapter。
  • eventhandler:处理领域事件,包括本域的和外域的。
  • executor:用来处理命令(Command)和查询(Query),对复杂业务,可以包含Phase和Step
  • interceptor: COLA提供的对所有请求的AOP处理机制。
  • validator:用来对传入的命令进行参数校验。

demo-domain:

  • domain:领域实体。
  • domainservice: 领域服务,用来提供更粗粒度的领域能力。
  • gateway:对外依赖的网关接口,包括存储、RPC、Search等,可以认为是对infrastructure的依赖反转。

demo-infrastructure:

  • config:配置信息相关
  • message:消息处理相关。
  • repository:存储相关,是gateway的特化,主要用来做本域的数据CRUD操作。
  • gateway:对外依赖的网关接口(demo-domain里的gateway)的实现。

除此之外,我们还要熟悉一下COLA中关于命名的规范:

命名规范

在COLA架构中,我们也能找到以前熟悉的VO,DTO等对象,只不过在COLA中他们的后缀名变了:

  • VO->CO,COLA中CO对象用于展示给前端。
  • DTO->Cmd,COLA中Cmd对象用于前端和后端的数据交互。
  • Entiry->DO,数据持久化对象。

此外,对于领域对象domain,比如UserDomain,我们在COLA中称之为UserE。

空文件

简介

整洁面向对象分层架构 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/janusor/cola.git
git@gitee.com:janusor/cola.git
janusor
cola
cola
master

搜索帮助