如何保证同事的代码不会腐烂?(2)

简介: 如何保证同事的代码不会腐烂?

COLA架构的特色

说完了分层架构,我们再来回顾下上面提到的COLA架构的几个特色的设计

领域与功能的分包策略

也就是下面这张图的意思,先按照领域分包,再按照功能分包,这样做的其中一点好处是能将腐烂控制在该业务域内。

比如消费者customer和订单order两个领域是两个后端开发并行开发,两个人对于dto,util这些文件夹的命名习惯都不同,那么只会腐烂在各自的业务包下面,而不会将dto,util,config等文件夹放在一起,极容易引发文件冲突。

前面的包定义,都是功能维度的定义。为了兼顾领域维度的内聚性,我们有必要对包结构进行一下微调,即顶层包结构应该是按照领域划分,让领域内聚。

业务域和外部依赖解耦

前面提到的domain和infrastructure层的依赖倒置,是一个非常有用的设计,进一步解耦了取数逻辑的实现。

例如下图中,你的领域实体是商品item,通过gateway接口,你的商品的数据源可以是数据库,也可以是外部的服务API。

如果是外部的商品服务,你经过API调用后,商品域吐出的是一个大而全的DTO(可能包含几十个字段),而在下单这个阶段,订单所需要的可能只是其中几个字段而已。你拿到了外部领域DTO,转为自己领域的Item,只留下标题价格库存等必要的数据字段。

COLA并不完美

诚然,COLA已经做的足够清晰简洁了,但是它仍然有不完美的地方,比如每个接口的出入参都会根据业务名做定义,导致了很多结构极为相似的DTO,DTO的爆炸增长是个问题。参考:ISSUE-271

但是总的来说,COLA只是给你提供了一种架构设计的思想,并不深入到强制你使用某种规范的层面,所以对于COLA中你觉得复杂,或者不理解的地方,很多时候需要你自己来做权衡,作取舍。取其精华,去其糟粕的运用到你的项目中。

总结

COLA架构并不复杂,COLA已经从1.0版本经过逐次精简,发展到了如今的形态。在阿里云代码脚手架生成器中作为一个可选项,足见其已经趋于成熟。

下一篇文章,我会和大家一起讨论下COLA组件库中的一些重要组件,比如扩展点组件(cola-component-extension-starter),状态机组件(cola-component-statemachine)等。这些组件并不强制和COLA绑定,你完全可以不使用这些组件,只使用COLA架构来设计你的应用。但是这些组件可以提升团队的研发效率。

相关文章
|
Java 网络架构 容器
面向整洁对象的分层架构COLA 4.0
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“面向整洁对象的分层架构”。 目前COLA已经发展到COLA 4.0。 COLA分为两个部分,COLA架构和COLA组件。
面向整洁对象的分层架构COLA 4.0
|
消息中间件 缓存 前端开发
COLA架构 入门
COLA架构 入门
4297 0
|
Kubernetes 负载均衡 Cloud Native
猿创征文|云原生|kubernetes二进制1.18单master扩展为多master
猿创征文|云原生|kubernetes二进制1.18单master扩展为多master
291 0
|
负载均衡 Java Maven
Spring Cloud Gateway 源码剖析之配置初始化
Spring Cloud Gateway 源码剖析之配置初始化
604 0
|
前端开发 架构师 搜索推荐
COLA 4.0:直击应用架构本质的最佳实践
COLA 4.0:直击应用架构本质的最佳实践
3788 0
COLA 4.0:直击应用架构本质的最佳实践
|
搜索推荐 前端开发 架构师
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
3060 0
阿里高级技术专家谈开源DDD框架:COLA4.0,分离架构和组件(上)
|
10月前
|
人工智能 自然语言处理 程序员
通义灵码 2.5 版发布上线,支持 Qwen3
示例中展示了通义灵码创建贪食蛇游戏的过程,包括代码优化、Bug修复和功能改进(如游戏结束后提示重新开始)。并通过AI总结了工具的核心能力,如实时续写、自然语言生码、单元测试生成等,帮助开发者高效编码并提升代码质量。
381 10
|
机器学习/深度学习 人工智能 自然语言处理
《人工智能知识图谱构建与应用的最新突破与成果》
在人工智能蓬勃发展的背景下,知识图谱的构建与应用成为热点。新技术如基于大语言模型和向量库的方法,提升了实体识别、关系抽取及图谱优化的效率和精度。这些创新已在医疗、电力、信息检索等领域取得显著成效,如思通数科平台使病例处理速度提升40%,国网湖北电力提高信息检索准确性。未来,知识图谱将更高效、智能地处理多模态数据,并在金融、教育等更多领域发挥重要作用,但也需关注数据隐私和安全问题。
597 9
|
搜索推荐 NoSQL 关系型数据库
COLA架构
COLA架构
4750 0
COLA架构
|
Java 数据处理 Spring
Spring Boot中的模板引擎选择与配置
Spring Boot中的模板引擎选择与配置
1456 0

热门文章

最新文章