领域驱动开发在货代订单业务的实践
本文是DDD领域驱动开发第2讲,先讲解当前业务存在哪些问题,什么是DDD,为啥需要使用DDD解决现有业务问题,DDD让技术主动理解业务,通过领域模型将可以描述各个业务领域之间的关系,最后讲解领域驱动开发在货代订单的实践。
文章目录
- 领域驱动开发在货代订单业务的实践
-
- 1、什么是DDD
-
- 1.1、模型驱动设计
-
- 1、实体(Entity)
- 2、值对象(ValueObject)
- 问题1:实体和值对象的区别?
-
-
- 3、聚合(Aggregate)
- 4、聚合根(Aggregate Root)
- 5、界定上下文(Bounded Context)
- 6、领域服务(DomainService)
- 7、工厂(Factory)
- 8、资源库(Repository)
-
- 2、为什么要用DDD?
-
- 2.1、DDD解决什么问题?
- 2.2、DDD的优势
- 3、如何实现DDD?
-
- 3.1、战略设计
-
- 1、领域划分
- 2、四色建模
- 3、事件风暴(Event Storming)
- 3.2、战术设计
-
- 1、分层架构
- 2、事件驱动架构
- 3、CQRS
- 4、贫血模型/充血模型
- 4、总结
- 5、领域驱动开发在货代订单的实践
-
- 5.1、划分领域
- 5.2、提炼模型对象及行为
- 5.3、梳理链路及改造
- 5.4、改造难点
- 5.5、DDD落地
- 6、项目代码及测试用例
- 参考
1、什么是DDD
DDD(Domain-Driven-Design)是一种强调将业务知识与软件设计紧密结合的一种软件设计思想,是一种适合构建复杂软件系统的思想及方法论,并不是一套现成的软件开发框架。
我的理解:用面向业务领域对象的思维构建代码,而不是传统的基于底层表结构来构建代码,核心是构建统一的业务领域模型,本质是面向对象(业务领域对象)的思想
为什么要建模?
- 在业务、运营、产品、开发、测试之间构建统一的业务语言,方便理解业务,降低沟通成本;
- 将业务拆分成一个个小的,且相互关联的领域模型,能更好的应对业务的改变和扩展。
软件是对现实世界的建模