DDD 领域驱动设计 阅读前导

《Domain-Driven Design: Tackling Complexity in the Heart of Software》

(Eric Evans,中文常译《领域驱动设计》"蓝皮书")

全书分四大部分 17 章(再加序言、附录与参考文献)。下表给出每章的主题要点------章节顺序偶有不同译本用词差异,但核心内容一致。

# 章名(直译) 位置 关键要点
1 压缩领域知识 (Crunching Knowledge) Part I 与领域专家一起挖掘知识,形成最初的模型草图。
2 语言与沟通 (Communication and the Use of Language) Part I 统一语言 (Ubiquitous Language):模型概念直接出现在代码、对话与文档中。
3 将模型与实现绑定 (Binding Model and Implementation) Part I 代码即模型:保持模型-代码同步,用测试驱动、重构保护一致性。
4 分层架构 (Layered Architecture) Part I 经典四层:用户接口/UI、应用、领域、基础设施;强调领域层纯净。
5 实体 (Entities) Part II 用身份标识的不变对象;生命周期跨多个状态。
6 值对象 (Value Objects) Part II 无身份、不可变、通过属性取值判等,用来描述事物特征。
7 领域服务 (Services) Part II 不自然属于任何对象而又至关重要的操作;具备无状态、以动词命名等特征。
8 模块/包 (Modules) Part II 用显式命名的包隔离概念;避免巨型"杂物桶"。
9 聚合 (Aggregates) Part II 一致性边界 + 根实体;解决事务粒度与并发。
10 工厂 (Factories) Part II 复杂对象/聚合的创建职责下移;隐藏构造细节。
11 仓储 (Repositories) Part II 为聚合根提供类似内存集合的持久化接口;屏蔽数据源。
12 模型驱动设计过程 (Model-Driven Design Process) Part III 在快速迭代中让模型、代码与洞见不断互相促发。
13 向更深层洞见的重构 (Refactoring Toward Deeper Insight) Part III 通过重命名、拆分/合并概念,把"发现"落实到模型。
14 维护模型完整性 (Maintaining Model Integrity) Part III 保持一致边界、制定团队协作规则、处理并行开发。
15 精炼 (Distillation) Part IV 找出核心域、通用子域、支撑子域;聚焦业务差异化。
16 大规模结构 (Large-Scale Structure) Part IV 上位结构模式:分层、管道-过滤器、责任链、分区等。
17 战略整合/上下文映射 (Strategic Integration & Context Mapping) Part IV 界限上下文 (Bounded Context)、上下文映射模式:共享内核、发布语言、防腐层等。

有些译本把 14-17 章标题略有不同,或把"上下文映射"拆成两章;核心内容一致,表中给出常见组合。


设计一个新系统,最常用的几章

  1. Part II 全部(5-11章)------战术设计

    • 决定代码级建模方式:实体、值对象、聚合、仓储、工厂、领域服务与模块。
    • 直接影响类图、事务边界、数据库表设计及接口风格。
  2. Part IV 关键章节(15-17章)------战略设计

    • 界限上下文、上下文映射:确定微服务/模块切分,以及系统之间的集成关系。
    • 精炼:帮助你把精力投入"核心域",把通用或支撑功能外包/购置/采用第三方。
    • 大规模结构:给跨团队协作提供统一"地图"。
  3. Part I 第 2、4 章

    • 统一语言和分层架构是落地战术模式的前提。
  4. Part III 第 13 章

    • 在演进过程中持续重构模型,避免设计腐化。

实际落地顺序建议

  1. 业务梳理:阅读 1-2 章,建立统一语言。
  2. 定界与拆分:深入 15-17 章,画出上下文图、确定核心域。
  3. 领域建模:使用 5-11 章模式,把每个上下文内部模型具体化。
  4. 架构承载:结合 4 章的分层原则,把领域层与接口/基础设施解耦。
  5. 持续迭代:参考 12-14 章,随着认知加深不断调整上下文与模型。

Pomelo_刘金这样既覆盖了战略("做什么"及"大块怎么分")也覆盖战术("类、对象、事务怎么设计")。如果时间有限,先精读 5-11 章 + 15-17 章,其余可按需查阅。

相关推荐
Pomelo_刘金9 小时前
用 DDD 把「闹钟」需求一点点捏出来
架构·rust·领域驱动设计
leesonCoding2 天前
里程碑三 - 基于 vue3 完成领域模型架构建设
领域驱动设计
格格步入8 天前
🫵记一次协助排查问题(COLA架构)
后端·领域驱动设计
葫芦和十三9 天前
破局与重构:关于 UGC 平台多身份账号体系的架构思考
架构·ai编程·领域驱动设计
方圆想当图灵1 个月前
深入理解软件设计:领域驱动设计实战
后端·领域驱动设计
rolt3 个月前
[pdf,epub]292页《分析模式》漫谈合集01-59提供下载
产品经理·架构师·uml·领域驱动设计
玄明Hanko3 个月前
你的 DDD 还在纸上谈兵?是时候落地了!
java·后端·领域驱动设计
28979240034 个月前
从建模一致到持久化一致:一种领域驱动设计下的持久化一致性探索
领域驱动设计
别说我什么都不会4 个月前
OpenHarmony实战开发之测试适配的HDF驱动
嵌入式·harmonyos·领域驱动设计