…接上
七. 总结和资源分享
看到这里,相信大部分读者会对DDD的理念有所理解,但是又不能对整个过程完全了解。其实,笔者也处在这个阶段,水平不足之处,敬请大家原谅并给予指正!
笔者这里尝试总结一下DDD的核心理念:
- 领域驱动设计是以领域核心业务为出发点,结合面向对象分析技术和设计模式,构造可重用,易于扩展和维护的领域模型,从而开发出健壮和可靠稳定的软件。
- 领域驱动设计旨在把领域专家和技术人员联合在一起共同工作,互补不足,注重沟通、聆听的一种软件开发方法论。它的重点实际上不在技术,而是如何准确和高效的实现业务价值,使开发成果效益最大化。
- 领域驱动设计包括战略设计和战术设计。战略设计主要是通过领域专家和开发人员共同讨论,商定出双方都可以接受的领域通用语言;从业务特征上对领域进行划分,形成子域,并生成界限上下文和上下文映射图。战术设计将会依照上下文映射图,根据实际情况确定继承关系,并设计诸如聚合、实体、领域服务等实现界限上下文的基本要素。
- 领域驱动设计架构上推荐六边形架构或者其扩展架构(洋葱圈架构、整洁架构),Event Sourcing + CQRS是其常用解决方案。
全景图
分享一张DDD的全景图谱,这张图囊括了最核心的DDD要素。
抽象架构
我们给出一张DDD的抽象架构
请读者仔细看一下上图,认真理解一下。笔者认为这张图对于领域驱动设计的总体结构总结得很好。