一、领域驱动设计的作用与意义
1、产生原因:
软件实质是对真实世界的模拟,人认识世界总是简单到复杂,软件需求就是发现世界,软件变更则变成必然,业务逻辑则由初期的简单变成复杂。而DDD就是为了应对日益复杂的业务逻辑导致开发困难、软件代码难以维护的问题而提出的软件开发思想。
2、领域建模思想
现实世界有什么事物=》就有什么对象;
现实世界有什么行为=》就有什么方法;
现实世界是什么关系=》就有什么关联;
3、作用
理论:DDD把我们对软件设计的关注点从技术重新拉回到业务,从而专注于业务领域模型的构建,而不是一上来就说的需要多少台虚拟机服务器。
实践:事件风暴(Event Storming)等具体的实施方法提供了一种结构化/半结构化的协作式可操作的方法,使得我们的软件架构设计过程可以有章可循,结束了之前随意而为之的状况。对于软件工程来说,这确实是一种巨大的进步。因为对于工程学科来说,结构化应该是迈向成熟的第一步。
二、基本概念和指导原则
1、数据模型:
贫血模型:
充血模型:
2、服务:
3、领域事件(event)
4、领域对象
实体:
值对象:
5、核心概念
领域:
限界上下文:
聚合:
三、支持领域驱动设计的主要4种技术架构设计及arthur架构
四、怎样正确地进行业务领域建模
五、案例
六、推荐书单
<<领域驱动设计-软件核心复杂性应对之道>>
<<分析模式可复用的对象模型>>
<<架构整洁之道>>
<<企业应用架构模式>>
<<领域特定语言>>