☰
00 · DDD 系列导读:这条路线怎么走
2026/10/22 13:03:09 网站建设 项目流程

我为什么要写一个 DDD 系列:一份写给"不敢重构"的人的路线图

这是「DDD 实战系列」的第 0 篇,也是整条路线的入口。它不教你任何建模技巧——那是后面 10 篇的事。这篇只做一件事:帮你判断自己该从哪篇下嘴,以及这条路最终要把你带去哪里。


一、先回答一个问题

先别急着翻目录,回答我一个问题:

如果现在有人说"把那个OrderService重构成 DDD",你脑子里第一个冒出来的,是"充血模型""四层架构"这些名词,还是"我的订单规则到底散落在哪几处、改起来要动几个文件"?

如果你的第一反应是前者,那这个系列就是为你写的。

我翻过不少 DDD 的中文资料,一个普遍的毛病是:上来就堆名词——实体、值对象、聚合、限界上下文、领域事件、六边形架构……名词都认识,合上书还是不知道怎么对自己那个几千行的 Service 下手。DDD 的真正定义其实很朴素:

让软件的代码结构,与业务的语言、规则、边界保持同构。

它不是分层架构,不是充血模型的语法糖,更不是一套"标准包名"。它是解决一个具体问题的工具:业务一大,规则散落,变更失控,系统腐化。这个系列想做的,是把"名词"还原成"判断"——什么时候该用、什么时候千万别用、用了要放弃什么。

所以这篇导读,写给三种人,尤其第一种:

  • 不敢重构的后端:守着一个几百行甚至几千行的OrderService,知道该改,但一动就怕崩;
  • 听过没落地的中级:蓝皮书翻过、名词都懂,真到建模判断时还是靠拍脑袋;
  • 想系统学的人:零基础入门,或者带团队定架构与选型的技术 Leader。

二、这条路线怎么走:11 篇地图

整个系列一共11 篇,从"为什么需要 DDD"一路讲到"三大实战案例与落地路线图"。11 篇不是随意堆的,它沿着三条主线铺开,对应 DDD 只回答的三个问题:

主线篇目回答的问题
战略设计02、03系统怎么切?边界在哪?块之间怎么协作?
战术设计04、05边界内部的类怎么建模?规则写在谁身上?
架构与落地06~10模型怎么落到代码结构?真实业务怎么用?渐进式怎么走?

把这 11 篇连成一张图,走向是这样的(颜色只用来区分三条主线,不表示好坏):

flowchart TD A["01 · 为什么需要 DDD<br/>贫血痛点与三条原则"] --> B["02 · 战略设计:子域与通用语言"] B --> C["03 · 战略设计:限界上下文与映射"] C --> D["04 · 战术设计:实体/值对象/聚合"] D --> E["05 · 战术设计:事件/服务/仓储"] E --> F["06 · 架构模式:四层与六边形"] F --> G["07 · 实战一:电商订单"] G --> H["08 · 实战二:银行转账"] H --> I["09 · 实战三:单体渐进拆分"] I --> J["10 · 落地路线图与误区"] style A fill:#FAFAFA,stroke:#A1A1AA style B fill:#FAFAFA,stroke:#A1A1AA style C fill:#FAFAFA,stroke:#A1A1AA style D fill:#FAFAFA,stroke:#0F6E56 style E fill:#FAFAFA,stroke:#0F6E56 style F fill:#FAFAFA,stroke:#A32D2D style G fill:#FAFAFA,stroke:#A32D2D style H fill:#FAFAFA,stroke:#A32D2D style I fill:#FAFAFA,stroke:#A32D2D style J fill:#FAFAFA,stroke:#A32D2D

记住这个结构:战略是"切"(02、03),战术是"填"(04、05),落地是"跑"(06 起)。切错了,后面填得再漂亮也是白费。所以第 10 篇的误区里,第一条就是"绝大多数重构死在了上来就看代码"——你应该先划边界,再碰代码。


三、三类读者,分别怎么读

同样 11 篇,不同人读法完全不同。我给三类读者各画了一条路径,核心是:先定位你是谁,再决定从哪篇下嘴,读到"够用"就合上,不必硬啃全部。

人群 A · 不敢重构的后端(先看痛点,再动手)
你的痛点是"想动不敢动"。别一上来读战略,那会让你更不敢动。先读01,用那个"全局搜索一条规则"的实验确认自己的系统确实在流血;然后直奔04 / 05战术设计,学怎么把一条规则收进模型;最后拿07 电商订单照着改一笔订单练手。你的终点是:能把一条核心规则收敛到唯一一处。到了这步,你已经比大多数"懂 DDD 名词"的人能打了。

人群 B · 听过没落地的中级(战略优先,案例验证)
你缺的不是概念,是"判断"。跳过 01,直接读02 / 03战略设计——先划边界、建通用语言,再碰代码;接着拿07 / 08 / 09三个真实案例照练,看别人怎么在真实业务里切上下文、做最终一致;最后用10的误区清单和自己的坑对账。你的终点是:能对着现有系统画出边界、说清一处建模的取舍。

人群 C · 想系统学 / 技术 Leader(顺序打底,按需加速)
零基础就01 → 06顺序打底,从"为什么"一路走到"架构模式";带团队定架构的 Leader,则重点读02、03、09、10(战略与组织落地),战术部分快速过。三类人最终都要走到10的六步路线图与体检清单。你的终点是:能讲清"为什么这么切",并带着团队照路线图走。

💡我的设计笔记 · 一

我为什么做这个系列,以及我放弃了什么。

DDD 的中文资料已经很饱和,蓝皮书、红皮书、"一文讲透 DDD"的博客都不缺我一份。但我翻完发现两个问题:讲概念的太多,讲判断的太少;讲成功的太多,讲代价的太少。"聚合是一致性边界"谁都会说,难的是判断"库存到底该不该进订单聚合""这个一致性值得用最终一致换吗"——这些没有标准答案,只有取舍依据。

所以我给自己定了四条写法规矩,也意味着我主动放弃了一些东西:①不抄书,每个概念配真实场景,于是放弃了"把定义讲全"的体面;②给数字(行数、耗时、团队规模),放弃了含糊的"显著提升";③给代价,每个方案说清"你放弃了什么",放弃了只写优点的爽文感;④给可复制模板,代码直接能改着用。这个系列的价值,一半在收益,一半在代价。


四、按路线图系统学,还是零散跳读?

同样这 11 篇,两种读法获得感差出一整个量级。

零散跳读的人,往往是"点开收藏、合上就忘":名词记了一堆(聚合、限界上下文、六边形),真到建模判断还是拍脑袋;偶尔抄个开源目录,三个月后系统更乱;案例看了个热闹,换到自己业务就不会用;等读到第 10 篇的误区,前面早踩完坑了。

按路线图系统学的人,第一步就先定位自己是哪类读者、痛点是什么,然后沿着对应路径走:先划边界再碰代码、规则内聚进模型、三个真实案例照练、最后用路线图和体检清单对账。差别不在"又懂了几个词",而在"能对自己的系统下手了"。

💡我的设计笔记 · 二

我踩过的最贵的一坑,恰恰是在写这个系列时差点重蹈的:又滑回"名词复述"。

有一版大纲,我按教科书顺序从"什么是实体"讲起,写到第 3 篇才进案例。自己读一遍就发现不对——这和我批评过的资料有什么两样?读者看完还是不会动手。于是我推倒重来,把"判断"和"代价"前置,每个概念都绑一个会咬人的真实场景。

这也引出一个我反复强调的点:DDD 是结果,不是动作。照着开源项目抄一套domain / application / infrastructure / interfaces包名,不会自动获得领域模型;充血模型不会因为文件被放进domain目录就突然有行为。检验有没有真 DDD,只有一个标准——找一条核心业务规则,看它能不能在唯一一个方法里被找到。


五、怎么读不踩空:一张收藏卡

把上面说的压缩成三步,再配一份自测清单,方便你读之前先给自己定个位:

三步很简单:① 先定位你是哪类读者(A 不敢重构 / B 听过没落地 / C 想系统学);② 选一条对应路径,每条路都有明确终点,读到终点就能合上;③ 定一个终点,无非三件事之一——画出系统的边界、说清一处建模的取舍、知道第一步改哪个类。如果读完只是"又认识几个名词",说明还在零散跳读,回到第 ② 步重走。

为了让你读得顺,整个系列有几条固定约定,先说在前面:

  1. 代码均为 Java,领域模型采用充血模型风格(不是只有 getter/setter 的贫血类);
  2. 领域事件命名使用过去时(OrderCreated、OrderPaid),一眼能看出是"已经发生的事";
  3. 文中提到的"上下文"如无特殊说明,均指"限界上下文";
  4. 各篇之间用篇号引用(如"见 04 篇"),不用链接,方便整体复制发布,也方便你跳读后回翻。

六、我为什么要写这个系列(本篇小结)

回到开头那个问题。我写这个系列,不是因为 DDD 资料不够多,恰恰相反——正是因为太多资料停在名词,太少资料停在判断与代价,才需要一个"写给不敢重构的人"的版本。

11 篇走完,我希望你合上书的状态不是"知道了 DDD 有哪些名词",而是能对着自己的系统画出边界、说出取舍,并且知道第一步该干什么。这篇导读就是那个起点:先想清楚自己是哪类读者、该走哪条路,剩下的,跟着路线一篇篇走即可。


系列目录

篇主题一句话
00系列导读本文:这条学习路线怎么走,三类人怎么读
01为什么需要 DDD规则副本的代价与三条原则
02战略设计(上)子域三分法、事件风暴、通用语言表
03战略设计(下)限界上下文与六种上下文映射模式
04战术设计(上)实体、值对象、聚合的建模与三条铁律
05战术设计(下)领域服务、领域事件、仓储与工厂
06架构模式四层架构、六边形架构与依赖倒置
07实战案例一电商订单系统:聚合与事件驱动建模
08实战案例二银行转账:跨聚合的最终一致性
09实战案例三40 万行单体如何按上下文渐进拆分
10落地与误区六步路线图、七个高频坑、体检清单

下一篇:01 · 为什么需要 DDD—— 先做个五分钟实验:找一条你最有把握的业务规则,全局搜索它,数数在你的代码里写了多少遍。


关于作者

技术原点(YuandianIT)

  • 985 计算机硕士,十年一线研发经历,先后在头部互联网公司做交易与履约,现于金融行业负责信贷核心、风控与账务系统的架构设计
  • 累计面试近千人,带过 50+ 新人,长期负责技术团队的技术选型与架构评审
  • 关注方向:复杂业务系统建模(DDD / 事件驱动 / 一致性设计)与AI 工程化落地
  • 写作原则:只写自己动手做过的,只给能落地的结论,方案必须带代价

我信一句话:架构的优劣不在图上,在第三次需求变更时的手感上。

关于技术原点

始于技术,归于原点—— 👉https://yuandianit.com

技术原点是一个基于Spring Boot 3 + Vue 3前后端分离的自有技术平台,把「内容创作 + 付费专栏 + AI 辅助 + 资源交易」完整跑通——不是一个博客 Demo:

能力说明
📝 文章系统Markdown 创作、分类标签、归档时间线、阅读量 / 点赞 / 收藏、关键词搜索
📚 Wiki 知识库专栏化知识库、目录树导航、整册解锁 ——本 DDD 系列会整理成册放在这里
🤖 AI 助手接入智谱 / OpenAI / 通义千问 / DeepSeek 多模型,支持 SSE 流式追问
💰 付费阅读四级阅读门禁与付费专栏,支持单篇与整册
🛒 社区商城源码与服务商品、微信 Native 扫码支付、订单与下载鉴权
⚙️ 后台管理内容与用户管理、sa-token 权限、操作日志、定时任务、Knife4j 接口文档

为什么要到平台上读这个系列?

  1. 代码和图都在线渲染:架构图、代码高亮、一键复制,比看截图舒服;
  2. 读到不懂的地方直接问 AI:平台内置多模型 AI 助手,可以就某一篇继续追问,不必等我在评论区回;
  3. 成册阅读:系列在平台上按 Wiki 专栏组织,目录树跟随,适合系统学一遍;
  4. 平台本身就是源码:文章里讲的依赖倒置、事件驱动、支付闭环、AI 流式对话,都能在平台源码里找到真实落地——理论和实现互为注解。

👉立即访问:https://yuandianit.com

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询