Derived Modular Arch
深度解析

概览

何时阅读深度解析,以及从哪里开始。

深度解析面向已经掌握基础、想弄清「为什么是这样设计」的读者。不必从头到尾通读,按你在 code review 或与同事争论时遇到的具体问题选读即可。

如果你是第一次接触 DMA,建议先从 什么是 DMA四大不变量 开始。本文可以稍后再回来读。

问题 → 文章

问题文章
为什么禁止 index.ts 的 re-export?为什么不用 barrel 文件
为什么不像 FSD 那样用 widgets/entities?为什么只有两层模块
购物车该放 services 还是 shared?Services vs Shared
DMA 和 FSD 有何不同?DMA vs FSD
既然有 ESLint,为什么还要 CLI?为什么需要 CLI,而不只靠 linter
DMA 解决什么?DMA 不做什么
新文件该放哪里?文件放置

推荐阅读顺序

如果你打算按顺序阅读:

  1. 为什么只有两层模块 — 分层哲学
  2. 为什么不用 barrel 文件 — 图的透明度
  3. Services vs Shared — 唯一「灰色」边界
  4. 为什么需要 CLI,而不只靠 linter — 强制校验
  5. DMA vs FSD — 与另一种方案的对比

与概念文档的关系

深度解析基础文章
Barrel 文件模块与公共 API
两层
Services vs SharedShared代码演进
CLI vs linter工具概览

接下来

On this page