《代码精进之路:从码农到工匠》读书笔记-实践部分

12、COLA架构

12.2 典型的应用架构

12.2.2 CQRS

12.2.3 六边形架构(适配器架构)

在左侧,适配器依赖端口,该端口的具体实现会被注入适配器,这个实现包含了用例;

在右侧,适配器就是端口的具体实现,他自己将被注入我们的业务逻辑,尽管业务逻辑只知道接口。

12.2.4 洋葱架构

 

12.3 COLA架构设计

12.3.1 分层设计

COLA将传统的业务逻辑层拆分成应用层、领域层和基础设施层。

1)展现层(Presentation Layer):负责以Rest的格式接受Web请求,然后将请求路由给Application层执行,并返回视图模型(View Model),其载体通常是数据传输对象(Data Transfer Object,DTO);

2)应用层(Application Layer):主要负责获取输入、组装上下文、做输入校验、调用领域层做业务处理,当需要时发送消息通知。若有需要,应用层也可直接访问基础实施层;

3)领域层(Domain Layer):主要封装了核心业务逻辑,并通过领域服务(Domain Service)和领域对象(Entities)的函数对外部提供业务逻辑的计算和处理;

4)基础设施层(Infrastructure Layer):主要包含数据访问通道(Tunnel)、Config和Common。

12.3.2 扩展设计

业务身份:在系统唯一标识的一个业务或者一个场景的标志。

扩展点:思想源自插件模式。每个业务或者场景都可以实现一个或者多个扩展点,一个业务身份加上一个扩展点可以唯一地确定一个扩展实现。

12.3.3 规范设计

包规范:

1)应用包:

2)领域包

3)基础包

命名规范:

规范用途解释
xxxCmd.javaClient RequestCmd代表command,表示一个用户请求
xxxCO.javaClient Object客户对象,用于传递数据,等同于DTO
xxxServiceI.javaAPI ServiceAPI接口类
xxxCmdExe.javaCommand Executor命令模式,每一个用户请求对应一个执行器
xxxInterceptor.javaCommand Interceptor

拦截器,用于处理切面逻辑

xxxExtPt.javaExtension Point扩展点

xxxExt.java

Extension扩展实现
xxxValidator.javaValidator校验器,用于校验的类
xxxConvertor.javaConvertor转化器,实现不同层级对象互转
xxxAsambler.javaAssembler组装器,组装外部服务调用参数
xxxE.javaEntity代表领域实体
xxxV.javaValue Object代表值对象
xxxRepository.javaRepository仓储接口
xxxDomainService.javaDomain Service领域服务
xxxDO.javaData Object数据对象,用于持久化
xxxTunnel.javaData Tunnel数据通道,DAO是最常见的通道,也可以是其他通道
xxxConstant.javaConstant class常量类
xxxConfig.javaConfiguration class配置类
xxxUtil.javaUtility class工具类(尽量少使用util的命名,太通用,不够显性化)

12.4 COLA测试(不是很理解)

12.5 COLA架构总览

COLA层次关系和依赖关系图:

COLA架构图

 

13、工匠平台(基于领域驱动的设计案例)

13.5 领域模型

13.5.1 领域建模

第一次建模:一个员工总是归属于一个团队,员工档案应该包含一组度量,每一个度量都能计算分数。

第二次建模:一个度量(Metric)可能会包含一个或多个度量项(MetricItem)

第三次建模:每个度量的权重(Weight)会因为岗位和角色的不同而不一样,因此将其抽象成实体,利用多台提升系统的扩展性。

第四次建模:度量是有层次关系的,因此引入了主度量(MainMetric)和子度量(SubMetric)。

13.5.2 领域词汇表

在业务讨论和领域建模的过程中,形成了一套描述该领域的词汇表:

team(团队)、profile(员工信息)、metric(度量)、mainMetric(主度量)、subMetric(子度量)、metricItem(度量项)、score(分数)、weight(权重)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值