COLA架构
文章平均质量分 65
技术专栏首先介绍了COLA框架的使用入门,以及与IDEA开发工具的集成等等;然后基于COLA架构,创建DDD经典示例项目-货物运输系统,详细介绍了DDD领域建模、适配层、应用层、领域层和基础设施层的代码开发、防腐层(ACL)设计与实现、领域事件...等等。
软件架构
这个作者很懒,什么都没留下…
展开
-
COLA 4.x和DDD项目实践精粹
在《COLA 4.x架构入门和项目实践》专栏基础之上,对项目开发实践进行了提炼和总结;同时,针对其中的一些知识点进行扩展和延伸。专栏介绍领域驱动设计(Domain Driven Design - DDD)起源于2003年Eric Evans出版《领域驱动设计》。领域驱动设计DDD最大的好处是将业务语义显现化,把原先晦涩难懂的业务算法逻辑,通过领域对象、统一语言将领域概念清晰的显性化表达出来。如果整个系统都采用DDD进行领域建模,不仅代码的可读性和系统的可维护性会大大提升,系统之间原创 2021-10-30 00:03:08 · 4085 阅读 · 2 评论 -
阿里DDD项目最佳实践-COLA 架构总览
DDD分层架构、六边形架构、洋葱圈架构、以及 COLA 架构的核心职责就是要做核心业务逻辑和技术细节的分离和解耦。在架构思想上,COLA 主张像六边形架构那样,使用端口-适配器去解耦技术细节;主张像洋葱圈架构那样,以领域为核心,并通过依赖倒置反转领域层的依赖方向。最终形成如下图所示的组件关系。换一个视角,从 COLA 应用处理响应一个请求的过程来看。COLA 使用了 CQRS 来分离命令和查询的职责,使用扩展点和元数据来提升应用的扩展性。整个处理流程如下图所示:《COLA 4..原创 2021-09-21 15:16:57 · 3951 阅读 · 0 评论 -
基于阿里开源的COLA架构和DDD领域驱动设计构建货物运输系统
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。目前COLA已经发展到COLA 4.0。COLA既是框架,也是架构。COLA架构融合了常见的DDD代码模型,可以帮助开发人员快速实践并落地DDD领域建模的应用项目。货物运输系统(Cargo Tracker Application)是领域驱动设计(DDD)的经典示例。Eric Evans(DDD之父)在他的书中引入了货物运输系原创 2021-09-10 13:23:21 · 2343 阅读 · 0 评论 -
领域驱动设计DDD中领域模型到底是什么?
DDD中的模型是指体现出应用系统的业务逻辑和状态的对象,是从具体业务(或领域)中提取出来的,因此又叫做领域模型。领域建模的输出是领域模型,领域模型是比自然语言更清晰的描述方式,以图形化的方式组织各种概念,有助于人对复杂信息的理解。领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。没有所谓唯一正确的领域模型。所有模型都是我们对试图要理解的领域的近似表示。领域模型主要是原创 2021-08-30 23:22:21 · 665 阅读 · 0 评论 -
基于DDD领域建模思想、COLA架构和CQRS模式快速实现装卸微服务应用
我们已经基于COLA架构创建了装卸服务(handlingms)的骨架代码,然后创建好了领域模型和数据模型。本文将按照数据流的顺序,分别在各个模块的包结构中,实现业务逻辑和代码落地。一、二方库client模块二方库client模块不是功能独立的层,client模块包含的代码应该是常见的服务接口Facade和DTO数据传输对象,如API、DTO、领域事件(Domain Event)、Command和Query对象等等。如上图所示,HandlingActivityRegist.原创 2021-08-14 11:32:05 · 1370 阅读 · 0 评论 -
为什么说开源的COLA既是架构也是框架?
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。目前COLA已经发展到COLA 4.0。COLA既是架构,也是框架。COLA框架继承了DDD的设计思想。COLA 开源地址:https://github.com/alibaba/COLA一、为什么说COLA是架构?在架构设计上,COLA主张像六边形架构那样,使用端口-适配器去解耦技术细节;主张像洋葱架构那样,以领域.原创 2021-08-11 23:20:33 · 944 阅读 · 0 评论 -
基于DDD领域建模思想、COLA开源架构和CQRS模式设计和构建货物运输系统
2003年,DDD(领域驱动设计)这一软件开发的方法与愿景经由建模专家 Eric Evans 的经典著作Domain-Driven Design: Tackling Complexity in the Heart of Software 正式面世,当即获得了广泛关注和高度评价。18 年间,网上越来越多关于 DDD的文章和讨论。为什么我们现在还不停地讨论 DDD?为什么DDD仍然如此重要?领域驱动设计常以战略设计与战术设计来将整个领域展现得淋漓尽致,其作用范围既面向业务也面向技术。从战略角度去规划系统原创 2021-08-07 15:43:16 · 1331 阅读 · 0 评论 -
领域驱动设计DDD和CQRS架构模式落地实践
在领域驱动架构中,通常会将查询和命令操作分开,我们称之为CQRS(命令查询职责分离Command Query Responsibility Segregation)。这张图是来自Martin Fowler大师的文章CQRS(https://www.martinfowler.com/bliki/CQRS.html)。上图中读模块Query Model和写模块Command Model只是逻辑分离,物理层面还是使用了同一个数据库。我们可以进一步将数据库改成读库和写库做到物理分离,这时候就需要同步读写库。原创 2021-08-01 13:16:09 · 610 阅读 · 0 评论 -
DDD开源COLA应用架构-实现分离业务逻辑和技术细节
COLA(Clean Object-oriented & Layered Architecture)架构是阿里团队自主研发的应用架构,目前已经开源( https://github.com/alibaba/COLA )。在COLA的设计中,充分汲取了经典架构的优秀思想。除此之外,阿里补充了规范设计和扩展设计,并且使用Archetype的方式,将架构固化下来,以便可以快速地在开发中使用。分层设计(Layered Architecture)COLA的分层是一种改良了的.原创 2021-07-27 20:18:56 · 2363 阅读 · 0 评论 -
如何基于COLA架构快速实现一个CRUD操作
COLA 是 Clean Object-oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的DDD开源项目。COLA是一套用于帮助开发人员快速实践DDD落地的项目架构。目前COLA已经发展到COLA 4.0。在COLA架构中,比如我们想创建一个User,一套完整的调用链大概如下图所示:1. 前端发起Command请求,经过CommandBus分发给对应Command命令处理程序(在COLA 4.0版本中,Comman原创 2021-07-21 13:06:25 · 1577 阅读 · 1 评论