你有没有发现一个现象:电商系统长得越来越像,CRM 系统越来越像,ERP 系统也越来越像。
订单有订单中心,商品有商品中心,用户有用户中心。功能模块的划分、接口的设计,甚至数据库的表结构,都大同小异。
这不是巧合。
这是因为,同一个领域的问题有很强的共性。你做电商,我也做电商,你要处理的订单逻辑跟我需要处理的订单逻辑,本质是一样的。
那为什么每个公司还要自己重新设计?就不能有一套标准答案吗?
能。这就是 DSSA。
01 什么是 DSSA?
DSSA 全称是 Domain-Specific Software Architecture,即特定领域软件体系结构。
说白了就是:针对某一个特定领域,定义一套可重用的架构蓝图。
它不是一个具体的系统,而是一套模板、一种框架。它告诉你在某个领域里,系统应该长什么样,组件怎么划分,数据怎么流转,接口怎么设计。
比如做电商的 DSSA,它会告诉你:订单系统应该包含哪些核心状态,支付系统应该提供哪些接口,库存系统怎么跟订单系统联动。这些都是经过验证的最佳实践。
你不用重新想一遍,拿来直接就能用。
DSSA 不是画出来的,是从多个成功系统中蒸馏出来的。
为什么需要 DSSA?三个理由。
第一,减少上线时间。有了 DSSA,新项目的架构设计时间可以从几周压缩到几天。核心骨架已经在了,你只需要做差异化。
第二,提高质量。DSSA 是在多个项目里验证过的最佳实践。别人踩过的坑,你不需要再踩,因为 DSSA 已经把坑绕过去了。
第三,降低风险。架构决策是高风险的事,选错了,后期重构代价巨大。DSSA 给了你一个经过验证的选项,风险大大降低。
举个例子。你第一次做电商系统,会纠结订单状态要不要用状态机、支付回调要不要异步。这些坑第一批吃螃蟹的人都踩过了,DSSA 已经把答案写好了。
02 建立 DSSA 的三个阶段
DSSA 不是凭空产生的,它需要一套严谨的方法论。我把它梳理成三个阶段:

第一阶段:领域分析
领域分析的核心目标是:找出这个领域的共性和变化性。
共性是什么?所有电商系统都要处理订单,所有支付系统都要处理交易流水,所有 CRM 系统都要管理客户信息。这些是共性,要固化到 DSSA 里。
变化性是什么?有的电商用支付宝,有的用微信支付;有的 CRM 注重销售漏斗,有的注重客户服务。这些是变化点,要预留扩展。
领域分析通常要做这几件事:
- 调研多个已有系统。对比它们的架构,找到相似的模块和关系。
- 跟领域专家聊。了解未来可能的变化方向。
- 建立领域模型。用统一的语言描述领域中的概念和关系。
这步做得好不好,直接决定了 DSSA 的质量。如果分析不到位,后面设计出来的架构就会偏——要么太通用,不够具体;要么太具体,不够灵活。
第二阶段:领域设计
有了领域分析的结果,就可以开始设计 DSSA 了。
这一阶段要输出:参考架构、组件模型、接口规范、交互流程。
参考架构是核心产出。它定义了整个系统的骨架:有哪些子系统,子系统之间怎么通信,数据怎么存储。
我做过一个电商的 DSSA,参考架构画出来就是一张大图:前台、中台、后台三条线。前台负责用户交互,中台负责业务处理,后台负责数据管理。
组件模型描述每个组件的职责和边界,接口规范定义了组件之间的契约,交互流程描述典型场景下的协作方式。
设计的时候,要特别注意变化性的处理。常见的做法是:插件机制、配置中心、策略模式,把可能变化的地方做成扩展点。
第三阶段:领域实现
到了这一步,就要把设计变成可运行的代码和工具。
这一阶段的产出包括:核心框架、基础组件、代码生成器、开发脚手架。
核心框架是 DSSA 的骨架,实现了通用的交互逻辑和数据流转。新人拿到框架,就能跑起来一个基本可用的系统。
基础组件是公用的功能模块。日志、权限、缓存、消息,这些每个项目都要的东西,直接打包好。
代码生成器是一个很好用的工具。你定义好数据模型,它帮你生成 CRUD 的代码,省了很多重复劳动。
我见过一个团队做 SaaS 系统用这种模式。每个新租户进来,跑一遍生成器,一套基础代码就出来了,然后再根据客户需求做二次开发,效率极高。
开发脚手架是一个标准化的工作环境。项目结构、代码规范、CI/CD 流程全都预置好了。新人照着文档走一遍,就能开始写业务代码。
03 DSSA 和产品线架构的关系
说到 DSSA,就绕不开产品线架构。这两个概念很接近,但侧重点不同。
产品线架构强调的是:用一套核心资产,快速生产多个产品。
DSSA 强调的是:针对领域定义的参考架构。
你可以这么理解:产品线架构是 DSSA 的商业化应用,DSSA 是产品线架构的技术基础。
比如你做了一套电商系统的 DSSA,然后用这个 DSSA 衍生出了 B2C 电商、B2B 电商、跨境电商三个产品,这就是产品线架构。
成功的产品线架构,能实现 70% 的共用 + 30% 的定制。这 70% 就是 DSSA 的价值所在,剩下的 30% 是你的差异化竞争力。
一个真实的类比:汽车平台
你想过一个问题没有?为什么丰田能造出那么多车型,研发成本却并没有翻倍?
答案就是平台化战略。TNGA 平台是丰田的汽车平台,在这个平台上诞生了凯美瑞、卡罗拉、RAV4 等不同车型。
它们共享发动机、变速箱、底盘这些核心部件,但外观、内饰、配置各不相同。
这就是 DSSA 的绝佳类比。
DSSA = 汽车平台。具体系统 = 平台上的车型。
你的核心框架和基础组件就是发动机和变速箱,接口规范和扩展点就是底盘和悬挂。每个项目可以在上面造出不同的车,但核心的行驶品质是一样的。
但 DSSA 有它的成本
说到这里,你可能会心动。但我要泼点冷水。
做 DSSA 不是一件容易的事,它需要:
第一,对领域有深刻的理解。如果你自己都没做过几个同类项目,你怎么敢定义标准答案?
第二,持续的投入。DSSA 不是做一次就完的。领域在演变,技术在发展,DSSA 也要不断迭代。这是长期投入,不要指望短期回报。
第三,组织的配合。DSSA 需要有人维护、有人推广、有人培训。如果公司没有这个决心,DSSA 就做不起来。
很多团队的 DSSA 变成了 PPT 架构,画出来很好看,实际没人用。为什么?因为没有配套的推广机制。写文档、办培训、建咨询通道,这些事都要有人做。
DSSA 不是银弹。它是五个项目的经验抽象。你要先走完前面四个项目。
我的建议是:不要一开始就想着做 DSSA。先做两三个项目,积累经验。到第四个、第五个项目的时候,你自然就知道哪些可以抽象,怎么抽象了。
先做出来,再抽象。顺序不能反。
04 AI 如何加速 DSSA 的建立?
这一块是我最兴奋的部分。AI 可以在领域分析阶段大幅提效。
传统的领域分析,需要人工看几十个系统的设计文档,整理共性和差异,这项工作非常耗时。
现在,你可以把多个系统的架构文档、设计文档,甚至代码,喂给 AI。
AI 可以帮你做这些事情:
- 快速识别共性模块。十套 CRM 系统的模块列表发给 AI,它几分钟就能告诉你:用户管理、客户管理、合同管理,十个系统都有,这是共性。涉及到具体细节,AI 也可以分析。比如十个订单系统的状态机是什么样的,AI 能画出一张对比图,告诉你哪些状态是共同的,哪些是特有的。
- 分析差异点。有的系统用 MySQL,有的用 PostgreSQL;有的支持多租户,有的不支持。AI 会列出这些差异,并给出趋势分析:哪些差异是主流?
- 生成领域模型。AI 根据多个系统的数据模型,帮你归纳出核心实体和关系,你只需要做最后的微调和确认。
- 生成 DSSA 草案。结合分析结果,AI 能生成一份完整的 DSSA 设计文档,包括参考架构图、组件划分、接口定义。
自动化的分析师,这是 AI 在架构领域的杀手应用。
AI 把你的经验放大了。它不是替你思考,是替你过滤信息,让你专注于判断。
开头说,同样领域的系统越来越像,这不是偶然。
因为它们面对的是同样的业务问题。而 DSSA,就是把解决这些问题的最佳实践,沉淀成可复用的架构资产。
电商会越来越像,CRM 会越来越像,ERP 也会越来越像。这不是同质化竞争导致的,这是领域成熟化的标志。
当一个领域足够成熟,就会形成通用的架构共识。
你今天做电商,不需要重新发明订单系统;你今天做支付,不需要重新发明清结算流程。这就是 DSSA 的价值。
如果说架构复用是一种修行,那 DSSA 就是修行的终点。
它不需要你每次从零开始,也不需要你每次都重新做决策。它给了你一个标准答案,同时保留了灵活调整的空间。
你的团队有没有属于自己的 DSSA?如果没有,是时候开始思考了。也欢迎来 云栈社区 和更多架构同行一起交流。