领域驱动设计(DDD)的核心思想
领域驱动设计(DDD)的核心思想
- 主要是为了解决快速变化与演进的复杂系统的设计问题
一、以业务领域为中心
- 强调软件设计必须紧密围绕业务领域的本质展开,通过领域模型(Domain Model)抽象业务规则和流程,而非围绕技术实现,让技术专家理解业务,根据业务的实际情况还改变技术实现。
二、统一语言(Ubiquitous Language)
- 开发团队与业务专家使用一致的术语描述需求,消除沟通歧义,避免同一个东西,因为不同的称呼而增加沟通成本。该语言直接体现在代码命名中(如Order.Place()而非Order.Submit())
三、限界上下文(Bounded Context)
- 将复杂领域划分为明确的业务边界,每个上下文内模型含义唯一。例如"客户"在销售上下文中关注购买记录,在售后上下文中关注服务历史
四、分层架构与战术模式
- 通过实体、值对象、聚合根等模式封装业务逻辑,避免贫血模型。例如Order聚合根负责维护订单项的一致性
五、持续迭代建模
- 领域模型需随业务认知深化而演进,通过事件风暴(Event Storming)等技术协作建模

浙公网安备 33010602011771号