COLA 4.x和DDD项目实践精粹
在《COLA 4.x架构入门和项目实践》专栏基础之上,对项目开发实践进行了提炼和总结;同时,针对其中的一些知识点进行扩展和延伸。
专栏介绍
领域驱动设计(Domain Driven Design - DDD)起源于2003年Eric Evans出版《领域驱动设计》。
领域驱动设计DDD最大的好处是将业务语义显现化,把原先晦涩难懂的业务算法逻辑,通过领域对象、统一语言将领域概念清晰的显性化表达出来。
如果整个系统都采用DDD进行领域建模,不仅代码的可读性和系统的可维护性会大大提升,系统之间的边界和交互也会更加的清晰。
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。COLA 4.0本质就是:代码规范+可复用组件+充血领域模型。
本技术专栏在《COLA 4.x架构入门和项目实践》基础之上,对基于COLA架构的项目开发实践进行了提炼和总结;同时,针对其中的一些知识点进行扩展和延伸,包括COLA架构、CQRS模式、代码落地实践和建议规则、领域事件多种实现方式、聚合根工厂模式、MapStruct实体映射工具开发实践等等。
专栏大纲
本专栏中首先总结了COLA分层架构和CQRS架构模式在DDD项目落地实践中的一些经验分享和建议规则;然后重点介绍了基于Guava EventBus、Spring框架中事件机制、以及Kafka消息中间件,实现领域事件的发布订阅功能;最后,还分享了聚合根工厂模式的必要性和开发实践,以及推荐MapStruct实体映射工具在DDD-COLA项目中应用等等。
专栏主要内容如下:
阿里开源COLA架构中模块职责分析和建议包结构参考模型;
COLA分层架构、CQRS架构模式和业务调用时序图;
领域驱动设计DDD和COLA架构各模块代码落地实践;
领域驱动设计DDD和COLA架构落地实践建议规则;
基于Guava EventBus实现领域事件落地实践-事件总线入门;
基于Guava EventBus实现领域事件落地实践-创建领域事件和发布器;
基于Guava EventBus实现领域事件落地实践-创建Guava领域事件发布器;
基于Guava EventBus实现领域事件落地实践-发布领域事件;
基于Guava EventBus实现领域事件落地实践-订阅并处理领域事件;
基于Guava EventBus实现领域事件落地实践-监听领域事件并发送邮件;
基于Spring ApplicationListener和ApplicationEvent实现领域事件落地实践;
基于Spring @EventListener注解实现领域事件落地实践;
基于消息中间件Kafka实现领域事件落地-配置kafka主题和生产者;
基于消息中间件Kafka实现领域事件落地实践-创建领域事件发布器和领域事件;
基于消息中间件Kafka实现领域事件落地实践-处理领域事件;
领域驱动设计DDD开发实践-为什么需要引入工厂模式?
Order聚合、聚合根和OrderFactory工厂的详细实现;
分层架构、数据模型、转换器和MapStruct实体映射工具;
MapStruct实体映射工具在COLA应用项目中的开发实践;
COLA 4.x和DDD项目实践精粹:示例项目介绍;
COLA 4.x和DDD项目实践精粹相关推荐
- COLA 4.0 - DDD项目实践
更多内容关注微信公众号:fullstack888 COLA分层架构 COLA 4.0 架构分成COLA架构和COLA组件两个部分: COLA架构:关注应用架构的定义和构建,提升应用质量. COLA组件 ...
- 阿里DDD项目最佳实践-COLA 架构总览
DDD分层架构.六边形架构.洋葱圈架构.以及 COLA 架构的核心职责就是要做核心业务逻辑和技术细节的分离和解耦. 在架构思想上,COLA 主张像六边形架构那样,使用端口-适配器去解耦技术细节:主张像 ...
- Asp.Net大型项目实践系列导航 [以后要仔细看的,支持作者 转]
关键字 NHibernate,ExtJs,Asp.Net MVC,Unity,业务领域驱动DDD,SOA,WCF,WF,分层开发,权限管理,异常管理,事务管理,日志管理... 宣传语 这里没有无聊的口 ...
- 项目实践系列-点击生成自定义设置的二维码
目前为止,生活中的我们到处可见一些二维码,使用微信扫一扫即可进入到另一个网络空间,这种方式方便了我们的生活,更让我们可以适应这种方式. 那么今天呢,我就个人项目经历,把点击生成自定义设置的二维码的一个 ...
- 荐书丨互联网项目管理实践精粹
点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 从搜狐到新浪再到京东十余年实践经验总结而成的PMBOK 理念原则.思路方法.技术工 ...
- 【DDD落地实践系列】DDD 领域驱动设计落地实践:六步拆解 DDD
引言 相信通过前面几篇文章的介绍,大家对于 DDD 的相关理论以及实践的套路有了一定的理解,但是理解 DDD 理论和实践手段是一回事,能不能把这些理论知识实际应用到我们实际工作中又是另外一回事,因此本 ...
- SVM算法在项目实践中的应用!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机 ...
- SAP WM Storage Location Reference在项目实践中的使用
SAP WM Storage Location Reference在项目实践中的使用 笔者目前所在的一个项目是一个已经上了SAP系统,但是需要扩展到新工厂的项目.该项目在组织结构设计的时候,结合业务的 ...
- 学习Unix,可从事什么样的工作(1)《精通Unix下C语言与项目实践》读书笔记(3)...
<精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的 ...
最新文章
- JVM启动流程和内存结构
- 一次违反常规的Java大厂面试经历,你还看不懂吗?
- python好还是c语言好-初学者先学习python语言还是C语言
- 【Python学习系列二十二】pandas数据筛选和排序
- JAVA并发编程实战---第三章:对象的共享(2)
- Java数据结构——队列
- linux拨号日志,Linux系统日志管理:(1)连接时间日志
- xcode中使用正则表达式来搜索替换代码
- DevExpress chartControl 数据绑定
- Javaweb项目在线学习平台系统(Spring+SpringMVC+MyBatis)
- mysql 更新某个字段值_怎么对mysql数据表中的某个字段的所有数据修改
- 三维地图Cesium加载天地图
- c语言中eof的作用,C语言中EOF是什么意思?
- C/C++二维数组传参
- 国务院办公厅公布2011年部分节假日安排通知
- 微信小程序对商户而言到底有什么用?
- 使用Arduino IDE来编写上传STM32以及STM8代码,STM32Duino教程
- MIUI14+安卓13 Root教程 小米10 小米11 小米12 小米13 红米
- 网易云易盾朱浩齐:视听行业步入强监管和智能时代
- unity打开除主菜单其他地方黑屏或白屏与unityHub安装unity简介