COLA 4.0 - DDD项目实践

更多内容关注微信公众号:fullstack888

COLA分层架构

COLA 4.0 架构分成COLA架构和COLA组件两个部分:

  1. COLA架构:关注应用架构的定义和构建,提升应用质量。

  2. COLA组件:提供应用开发所需要的可复用组件,提升研发效率。

outside_default.png

COLA 4.0 框架

COLA架构:关注应用架构的定义和构建,提升应用质量。领域模型对设计能力要求很高,没把握用好,一个错误的抽象还不如不抽象,宁可不要用,也不要滥用,不要为了DDD而DDD。

COLA架构各个包结构的简要功能描述,如下表所示:

层次包名功能必选
Adapter层web处理页面请求的Controller
Adapter层wireless处理无线端的适配
Adapter层wap处理wap端的适配
App层executor处理request,包括command和query
App层consumer处理外部message
App层scheduler处理定时任务
Domain层model领域模型
Domain层ability领域能力,包括DomainService
Domain层gateway领域网关,解耦利器
Infra层gatewayimpl网关实现
Infra层mapperibatis数据库映射
Infra层config配置信息
Client SDKapi服务对外透出的API
Client SDKdto服务对外的DTO

COLA 组件:提供了一些框架级别的功能,提供应用开发所需要的可复用组件,提升研发效率。

组件名称功能版本依赖
cola-component-dto定义了DTO格式,包括分页1.0.0
cola-component-exception定义了异常格式,主要有BizException和SysException1.0.0
cola-component-statemachine状态机组件1.0.0
cola-component-domain-starterSpring托管的领域实体组件1.0.0
cola-component-catchlog-starter异常处理和日志组件1.0.0exception,dto组件
cola-component-extension-starter扩展点组件1.0.0
cola-component-test-container测试容器组件1.0.0

COLA框架职责划分

COLA框架主要分为适配层、应用层、Client模块、领域层、基础设施层

分层架构如下:

outside_default.png

COLA 4.0 分层架构

分包结构如下:

outside_default.png

COLA 4.0 包结构模型

1)适配层(Adapter Layer):负责对前端展示(web,wireless,wap)的路由和适配,对于传统B/S系统而言,adapter就相当于MVC中的controller;

outside_default.png

适配层代码结构

2)应用层(Application Layer):主要负责获取输入,组装上下文,参数校验,调用领域层做业务处理,如果需要的话,发送消息通知等。层次是开放的,应用层也可以绕过领域层,直接访问基础实施层;

outside_default.png

应用层代码结构

3)Client模块(Client Module):包含的代码应该是常见的服务接口Facade和DTO数据传输对象,如API、DTO、领域事件、Command和Query对象等等。

outside_default.png

Client模块

4)领域层(Domain Layer):主要是封装了核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Domain Entity)的方法对App层提供业务实体和业务逻辑计算。领域是应用的核心,不依赖任何其他层次;

outside_default.png

领域层包结构

5)基础实施层(Infrastructure Layer):主要负责技术细节问题的处理,比如数据库的CRUD、搜索引擎、文件系统、分布式服务的RPC等。此外,领域防腐的重任也落在这里,外部依赖需要通过gateway的转义处理,才能被上面的App层和Domain层使用。

outside_default.png

基础实施层

6)启动模块(Start Module):Spring Boot的启动类,应用入口。没有任何逻辑,只需要配置 application.properties 配置文件。

outside_default.png

启动模块

CQRS架构模式

CQRS架构模式,在DDD中是一种很常见的模式,它的用途在于将Command与Query功能进行分离,让一些复杂的查询摆脱领域模型的限制,以更为简单的DTO形式展现查询结果。服务可以独立部署,也可以拆分部署。数据库可以使用一个,也可以读写分离。

outside_default.png

CQRS架构

在COLA 4.0中,已经移除了Command Bus和Query Bus的处理,进一步简化了COLA架构。

业务调用时序图

我们通过分三个场景的UML时序图描述一下各模块之间的调用关系。主要差异在于应用层中的Command或Query执行器的处理过程。

场景一:Command或Query执行器直接调用Gateway接口,处理业务请求。

outside_default.png

UML时序图:场景一

场景二:Command或Query执行器,调用领域服务(Domain Service),然后领域服务调用Gateway完成业务请求。

outside_default.png

UML时序图:场景二

场景三:Command或Query执行器直接调用infrastructure层中定义的Mapper,完成业务逻辑处理。

outside_default.png

UML时序图:场景三

下面说明整体调用过程和注意事项。

  1. Adapter接收Cmd/Qry对象或者参数列表(Request Param)。如果请求参数是参数列表,则构造Cmd/Qry对象,然后调用App Service接口。

  2. App服务接收Cmd/Qry对象,然后调用Cmd/Qry Executor(执行器),如上图所示,分为以下三种场景:
    2.1. Command Executor 可以通过领域实体方法,以及Gateway接口,实现简单业务编排,完成业务请求。
    2.2. 或者通过调用领域服务(Domain Service)实现复杂业务逻辑处理,然后在领域服务通过Gateway访问数据的持久化。
    2.3. 或者直接跳过Domain层,在Qry Executor中调用infrastructure中的Mapper接口,访问数据库持久化操作。

  3. App服务、Command Executor(命令执行器)以及Domain Serivce都是无状态服务,本身不存储任务信息。

  4. App服务负责实现对外暴露的API服务,然后调用Command Executor.

  5. Domain Service 负责封装一个领域中跨实体操作的业务逻辑。App Service 负责封装跨领域实体操作的业务逻辑。

  6. Gateway接口用来隔离技术实现细节,GatewayImpl实现领域层定义的Gate接口,负责数据的CRUD操作,数据库测可以是MySQL、NoSql、Elasticsearch、Redis、甚至Hadoop/HBase等

分层架构、包结构、业务调用关系

下图将COLA分层架构、包结构、业务调用关系,整合在一张图中。

outside_default.png

COLA分层架构、包结构、以及业务调用关系图

- END -

往期回顾

一款功能强大、高颜值、官方出品的Redis可视化工具

Flink+Clickhouse在广投集团实时数仓的最佳实践

腾讯超大 Apache Pulsar 集群的客户端性能调优实践

爬虫基本原理介绍、实现以及问题解决

DDD领域驱动设计实战-服务和数据在微服务各层协作的最佳实践

38fed4c1ad338ee5c95eaabe26305a6a.png

技术交流,请加微信: jiagou6688 ,备注:Java,拉你进架构群

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Cola4.0是一种基于云计算、大数据和物联网技术的智能生产系统,它可以为企业提供一系列集成化的解决方案,实现智能制造、智能供应链、智能管理等多种功能。 一种常见的Cola4.0应用示例是工厂自动化生产线的智能化升级。通过引入物联网、传感器和数据分析技术,实现机器自动识别、自动调整和自主维护等功能,从而提高生产效率、降低生产成本、减少设备故障。 此外,Cola4.0还可以用于智能供应链管理,包括原材料采购、生产计划安排、库存管理和物流配送等环节,可实现实时监测、智能预警和优化管理,从而提升供应链的效率和透明度。 Cola4.0还可以应用于智能管理领域,如运营管理、质量控制和安全监管等,通过数据分析和智能算法,实现精细化管理和快速反应,从而提高企业的管理水平和竞争力。 总之,Cola4.0具有广泛的应用场景和巨大的市场潜力,可以为企业带来实实在在的经济效益和社会效益。 ### 回答2: Cola 4.0是一款基于人工智能、大数据分析和实时反馈功能的智能客服软件,广泛应用于各种企业的客服中心、电商平台、社交媒体等领域。以下是Cola 4.0的应用示例。 1. 客服中心:Cola 4.0可以接受语音、文字、图片等多种方式的用户咨询,并通过自然语言处理技术快速识别用户问题,并进行智能回答。同时,Cola 4.0还可以实时监测用户的情绪变化,根据用户情绪进行情景式回复,提高用户体验。 2. 电商平台:Cola 4.0可以对电商平台上的大量数据进行分析,包括用户行为、购买偏好等,从而为平台提供更精准的个性化推荐。此外,Cola 4.0还可以根据用户的历史消费记录和评价反馈,对商品进行智能排序,提高用户满意度和销售额。 3. 社交媒体:Cola 4.0可以实时监测社交媒体上的用户评论和反馈,包括情感分析、舆情监测等,从而为企业关注和应对公众舆论提供充分的依据和决策支持。此外,Cola 4.0还可以为企业提供智能推广和品牌宣传服务,进一步提升企业的品牌形象和知名度。 总之,Cola 4.0是一款承载了智能化、大数据化、个性化等多种技术创新的智能客服软件,自上市以来已在多个行业和领域取得了显著的成效,并得到了广大用户的认可和好评。相信在未来的发展中,Cola 4.0还会持续推出更多的创新功能和应用场景,为企业和用户带来更多更好的服务和体验。 ### 回答3: cola4.0是一款企业级应用开发平台,它拥有强大的应用构建和管理能力,能够为企业提供全方位、系统化的数字化解决方案。下面,我们来看一些cola4.0的应用示例。 一、物流管理应用 物流管理是一项涉及面广、复杂度高的工作,但它又是企业发展中不可或缺的一环。cola4.0可以根据企业需要创建一个物流管理系统,通过预警、跟踪、分配、实时监控等功能,实现整个供应链的精准管控,提高物流效率并降低成本。 二、销售管理应用 销售管理是企业营销中的一个重要环节,而如何管理好与客户关系也是企业发展的重点。cola4.0可以根据企业需求建立销售管理平台,包括客户信息、销售进度、跟进记录、销售漏斗、销售分析等功能,实现销售过程的全面管控和数据化分析。 三、人力资源管理应用 招聘、培训、考核、薪资等是人力资源管理中的重点工作,而cola4.0可以创建一个专业的人力资源管理系统,使企业能够完全掌握人力资源情况,包括员工档案、组织架构、绩效考核、薪酬管理等功能,提高HR的工作效率和人员管理水平。 四、企业运营管理应用 企业运营涉及到多个方面,而cola4.0可以打造一个企业运营管理系统,帮助企业全面掌握业务运营情况,包括财务管理、采购管理、供应商管理、库存管理等核心功能,协助企业高效地运营,提高企业竞争力。 总之,cola4.0是一款具有广泛应用范围和高度定制化的企业级应用开发平台,它可以根据企业需求提供全方位的解决方案,改善企业运营效率、提高管理水平,实现企业数字化转型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值