2003年,DDD(领域驱动设计)这一软件开发的方法与愿景经由建模专家 Eric Evans 的经典著作Domain-Driven Design: Tackling Complexity in the Heart of Software 正式面世,当即获得了广泛关注和高度评价。18 年间,网上越来越多关于 DDD的文章和讨论。为什么我们现在还不停地讨论 DDD?为什么DDD仍然如此重要?
领域驱动设计常以战略设计与战术设计来将整个领域展现得淋漓尽致,其作用范围既面向业务也面向技术。从战略角度去规划系统、划分领域。而从战术角度则从技术层面来指导我们该如何去设计。
随着新开发技术的不断发展,尤其是微服务和容器化技术的引入,我们的应用系统趋向于更加优雅的设计。DDD设计思想在项目落地实践过程中也在不断进化。
COLA 是 Clean Object-Oriented and Layered Architecture的缩写,代表“整洁面向对象分层架构”,是来自阿里技术专家的开源项目。目前COLA已经发展到COLA 4.0。COLA 4.0本质就是:代码规范+可复用组件+充血领域模型。
《COLA 4.x架构入门和项目实践》技术专栏首先介绍了COLA框架的使用入门,以及与IDEA开发工具的集成等等;然后基于COLA架构,创建DDD经典示例项目-货物运输系统,详细介绍了DDD领域建模、适配层、应用层、领域层和基础设施层的代码开发、防腐层(ACL)设计与实现、领域事件(Domain Event)入门实践、以及基于Kafka消息中间件的消息发布和订阅等等。内容由浅入深,从开发实战出发,逐步掌握基于COLA架构和DDD领域建模思想构建复杂业务应用系统。
DDD 不涉及具体的开发技术,但也并非对技术漠不关心。
货物运输系统分为四个独立的微服务应用:分别为预订微服务(bookingms)、运输微服务(routingms)、跟踪微服务(trackingms)和装卸微服务(handlingms),如图所示。
本技术专栏主要内容如下:
- 开源COLA 4.0架构和DDD领域驱动设计入门介绍
- 体验COLA示例应用项目craftsman:环境准备、启动运行和代码分析(1)
- 体验COLA示例应用项目craftsman:环境准备、启动运行和代码分析(2)
- 如何使用COLA框架创建业务应用项目?
- COLA框架源码编译发布到本地Maven仓库的完整过程
- COLA项目模板和IDEA开发工具的集成
- 基于COLA架构创建DDD经典示例项目Cargo货物运输系统和领域建模
- COLA架构和DDD经典示例项目:领域模型中命令和命令处理程序的实现
- COLA架构和DDD经典示例项目:Gateway接口和实现
- COLA架构和DDD经典示例项目:创建MySQL包裹预订数据库表和访问账号
- COLA架构和DDD经典示例项目:自动生成数据访问层代码
- COLA架构和DDD经典示例项目:GatewayImpl实现类的开发
- COLA架构和DDD经典示例项目:数据流转图和转换工具类开发
- COLA架构和DDD经典示例项目:服务接口和应用服务实现类的开发
- COLA架构和DDD经典示例项目:启动应用并发起包裹预订请求
- COLA架构和DDD经典示例项目:包裹查询服务的实现
- 基于COLA架构创建运输微服务应用和DDD领域建模
- 基于COLA架构开发和实现运输微服务应用
- 防腐层设计与实践:隔离限界上下文之间的耦合,实现干净的领域模型
- 防腐层设计与实践:在包裹预订服务中通过防腐层实现包裹路由服务
- 领域事件入门实践:包裹预订事件和包裹路由事件建模
- 领域事件入门实践:基于Kafka消息中间件发布领域事件
- 基于COLA架构创建包裹跟踪微服务应用和DDD领域建模
- 领域事件入门实践:基于Kafka消息中间件监听包裹预订事件和包裹路由事件
- 领域事件入门实践:监听包裹路由事件的完整实现
- 包裹预订、运输、跟踪服务之间的联调测试
- 基于COLA架构创建包裹装卸微服务应用和DDD领域建模