DevToy

文档工作流

适合工程团队审阅的 diagram-as-code 工作流

通过定义所有权、源码边界、PR 检查和更新触发条件,让 Mermaid 图保持长期可用。

发布于 2026年7月11日 · 更新于 2026年7月11日

diagram-as-code 解决的是文件格式问题,不是维护问题。文本图表仍然可能变旧、误导人,或者根本无法审阅。工作流必须说明这张图为什么存在、谁负责,以及哪些工程改动需要更新它。

每张图只支持一个决策

在源码旁边写一句简短的目的说明。“展示公共 API 的信任边界”是可以验证的;“系统架构”就太宽泛了,容易把所有组件都塞进一张图里。

根据要回答的问题选择合适的图类型。流程图适合决策,时序图适合交互顺序,ER 图适合数据关系,甘特图适合轻量计划。不要为了少几个文件就强行把所有视图都放进同一种符号里。

把源码放在相关文档旁边

如果一张图解释的是某个 API,就把源码放在 API 文档附近,而不是放在远处的设计目录里。物理上接近,更容易让所有权和审阅发生。给源码起一个可预测的名字,并且只有在发布平台不能直接渲染 Mermaid 时,才导出渲染产物。

如果同时提交源码和导出的 SVG,一定要说明哪个文件才是权威版本。生成产物不应该手工修改。

定义更新触发条件

一份有用的 Pull Request 检查单,应该写清楚具体触发条件:

  1. 新增、删除或变更某个服务的所有权。
  2. 信任边界或数据去向发生变化。
  3. API 调用变成异步,或者多出失败分支。
  4. 数据库关系的可选性或基数发生变化。
  5. 文档中声明的交付里程碑发生变化。

这种写法比让每个 PR 作者笼统地“如果需要就更新文档”更有效。

先审语义,再看外观

审阅者应该先确认节点、关系、顺序和标签是否和实现一致,再看布局和颜色。一个视觉上很漂亮但基数错了的图,实际上是有害的,因为读者往往会相信视觉结构。

让变更足够小,方便用文本 diff 审阅。稳定的节点 ID 和“一行一句话”能减少无关噪音。如果一次格式化会把整文件重写,应该把格式化和语义变更分开。

验证发布运行时

不同 GitHub、文档生成器和嵌入式编辑器里的 Mermaid 版本和安全策略都可能不同。新的语法应该在最终渲染器里测试,或者明确标注所需版本。若图表必须通过严格安全策略,最好避免交互链接和原始 HTML。

使用 Mermaid 编辑器 做本地迭代和导出,但应把仓库里的源码和代码评审流程当作真正的长期资产。

相关指南