在《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项目实践精粹相关推荐

  1. COLA 4.0 - DDD项目实践

    更多内容关注微信公众号:fullstack888 COLA分层架构 COLA 4.0 架构分成COLA架构和COLA组件两个部分: COLA架构:关注应用架构的定义和构建,提升应用质量. COLA组件 ...

  2. 阿里DDD项目最佳实践-COLA 架构总览

    DDD分层架构.六边形架构.洋葱圈架构.以及 COLA 架构的核心职责就是要做核心业务逻辑和技术细节的分离和解耦. 在架构思想上,COLA 主张像六边形架构那样,使用端口-适配器去解耦技术细节:主张像 ...

  3. Asp.Net大型项目实践系列导航 [以后要仔细看的,支持作者 转]

    关键字 NHibernate,ExtJs,Asp.Net MVC,Unity,业务领域驱动DDD,SOA,WCF,WF,分层开发,权限管理,异常管理,事务管理,日志管理... 宣传语 这里没有无聊的口 ...

  4. 项目实践系列-点击生成自定义设置的二维码

    目前为止,生活中的我们到处可见一些二维码,使用微信扫一扫即可进入到另一个网络空间,这种方式方便了我们的生活,更让我们可以适应这种方式. 那么今天呢,我就个人项目经历,把点击生成自定义设置的二维码的一个 ...

  5. 荐书丨互联网项目管理实践精粹

    点击上方"程序人生",选择"置顶公众号" 第一时间关注程序猿(媛)身边的故事 从搜狐到新浪再到京东十余年实践经验总结而成的PMBOK 理念原则.思路方法.技术工 ...

  6. 【DDD落地实践系列】DDD 领域驱动设计落地实践:六步拆解 DDD

    引言 相信通过前面几篇文章的介绍,大家对于 DDD 的相关理论以及实践的套路有了一定的理解,但是理解 DDD 理论和实践手段是一回事,能不能把这些理论知识实际应用到我们实际工作中又是另外一回事,因此本 ...

  7. SVM算法在项目实践中的应用!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:苏丽敏,Datawhale优秀学习者,北理工计算机硕士 支持向量机 ...

  8. SAP WM Storage Location Reference在项目实践中的使用

    SAP WM Storage Location Reference在项目实践中的使用 笔者目前所在的一个项目是一个已经上了SAP系统,但是需要扩展到新工厂的项目.该项目在组织结构设计的时候,结合业务的 ...

  9. 学习Unix,可从事什么样的工作(1)《精通Unix下C语言与项目实践》读书笔记(3)...

    <精通Unix下C语言编程与项目实践>读书笔记(new) 文章试读 不拘一个遍程序系列:编程序不能一个脑袋钻到底,有时要学会变通,即所谓的曲线救国.一.二.三.四 职场规划:一些杂七杂八的 ...

最新文章

  1. JVM启动流程和内存结构
  2. 一次违反常规的Java大厂面试经历,你还看不懂吗?
  3. python好还是c语言好-初学者先学习python语言还是C语言
  4. 【Python学习系列二十二】pandas数据筛选和排序
  5. JAVA并发编程实战---第三章:对象的共享(2)
  6. Java数据结构——队列
  7. linux拨号日志,Linux系统日志管理:(1)连接时间日志
  8. xcode中使用正则表达式来搜索替换代码
  9. DevExpress chartControl 数据绑定
  10. Javaweb项目在线学习平台系统(Spring+SpringMVC+MyBatis)
  11. mysql 更新某个字段值_怎么对mysql数据表中的某个字段的所有数据修改
  12. 三维地图Cesium加载天地图
  13. c语言中eof的作用,C语言中EOF是什么意思?
  14. C/C++二维数组传参
  15. 国务院办公厅公布2011年部分节假日安排通知
  16. 微信小程序对商户而言到底有什么用?
  17. 使用Arduino IDE来编写上传STM32以及STM8代码,STM32Duino教程
  18. MIUI14+安卓13 Root教程 小米10 小米11 小米12 小米13 红米
  19. 网易云易盾朱浩齐:视听行业步入强监管和智能时代
  20. unity打开除主菜单其他地方黑屏或白屏与unityHub安装unity简介

热门文章

  1. 联合国发布AI报告:自动化和AI对亚洲有巨大影响
  2. 报表工具对比选型系列用例——多源分片报表
  3. 聊聊Benchmark测试【转载】
  4. [极客大挑战 2020]Roamphp 1、2、4
  5. XP SP2激活总集
  6. 一篇非大厂的 Android 面试总结心得~
  7. C++中相对路径与绝对路径以及斜杠与反斜杠的区别
  8. 游戏测试工程师的光荣与梦想(一)-百炼成钢
  9. BurpSuite IP代理扩展(IPRotate_Burp_Extension)每次请求切换IP
  10. 单片机中 读引脚 和读锁存器的区别