代码绘制流程图

使用 Mermaid 绘制流程图(实战指南)

一、背景

在日常开发和数据工程中,我们经常需要绘制流程图来描述:

  • 数据处理流程
  • 系统架构
  • 任务调度逻辑
  • 算法执行路径

传统工具(如 Visio、Draw.io)虽然可视化强,但存在:

  • 不易维护(改图麻烦)
  • 不易版本管理
  • 无法与代码同步

因此推荐使用 Mermaid ------一种"用代码画图"的轻量级工具。


二、Mermaid 是什么?

Mermaid 是一种基于文本的图表描述语言,可以直接嵌入:

  • Markdown
  • GitHub / GitLab
  • Notion / 飞书
  • 各类文档系统

👉 核心特点:

  • 用代码描述图
  • 自动渲染
  • 易维护、可版本控制

三、基础语法

1. 定义流程图方向

说明:

  • flowchart:表示流程图
  • TD(Top Down):从上到下

常见方向:

写法 含义
TD 上 → 下
LR 左 → 右
RL 右 → 左

2. 定义节点(Node)

渲染错误: Mermaid 渲染失败: No diagram type detected matching given configuration for text: A开始 B(结束) C{是否成功}

说明:

写法 形状 用途
[ ] 矩形 普通流程
( ) 圆角 开始/结束
{ } 菱形 条件判断

3. 定义连接关系(Edge)

复制代码
A --> B

表示:

👉 A 流向 B


4. 条件分支

复制代码
B -->|是| C
B -->|否| D

表示:

  • 条件为"是" → C
  • 条件为"否" → D

5. 分支汇合

复制代码
C --> E
D --> E

👉 多条路径汇合到同一节点


6. 注释

复制代码
%% 这是注释

👉 不会显示在图中


四、完整示例(数据过滤流程图)

下面是一个典型的数据处理流程(两层过滤 + md5去重):
存量数据
增量数据


原始数据输入
数据类型判断
处理历史数据
处理新增数据
梳理对应关系
直接进入处理
是否存在md5映射
直接使用映射
全量表补齐
第一层过滤
基于raw表过滤
UUID / md5筛选
进入管线过滤
基于audio md5去重
计算md5
维护md5表
写入全量表
去重
验证
写入正式表
输出结果


五、绘制流程图的通用步骤

绘制一个流程图,本质上可以拆解为 4 步:

Step 1:梳理流程

先明确:

  • 输入是什么
  • 有哪些处理步骤
  • 是否有分支
  • 是否有汇合

Step 2:定义节点

text 复制代码
输入 → 处理 → 判断 → 输出

Step 3:连接流程

text 复制代码
A --> B --> C

Step 4:加入条件

text 复制代码
B -->|条件1| C
B -->|条件2| D

六、实战经验总结

✅ 1. 节点命名要清晰

❌ 不推荐:

text 复制代码
处理1、处理2

✅ 推荐:

text 复制代码
计算md5
写入全量表

✅ 2. 判断节点要用"问题形式"

❌:

text 复制代码
md5判断

✅:

text 复制代码
是否存在md5映射?

✅ 3. 控制复杂度

  • 超过 15 个节点 → 建议拆分子流程

  • 可以按模块划分:

    • 数据层
    • 计算层
    • 存储层

✅ 4. 善用注释

复制代码
%% 第一层过滤

👉 让代码更易读


七、常见使用场景

Mermaid 非常适合:

  • 数据工程流程图
  • ETL 流程
  • 机器学习 pipeline
  • 系统架构设计
  • 面试/汇报文档

八、工具推荐

你可以在以下环境直接使用 Mermaid:

  • Markdown 编辑器
  • GitHub(原生支持)
  • 飞书文档
  • Notion
  • 在线编辑器(Mermaid Live)

九、总结

Mermaid 的核心价值在于:

👉 用代码描述流程图,实现"图即代码"

掌握以下 4 个语法即可应对 90% 场景:

text 复制代码
A[节点]
B{判断}
A --> B
A -->|条件| B

十、后续进阶

可以进一步学习:

  • 子图(subgraph)
  • 样式(颜色、边框)
  • 时序图(sequenceDiagram)
  • 架构图(C4 模型)

👉 一句话总结:

Mermaid = 用代码画图,让流程图变得可维护、可复用、可工程化


上述流程图代码

sh 复制代码
flowchart TD

A[原始数据输入] --> B{数据类型判断}

B -->|存量数据| C[处理一期/二期数据]
B -->|增量数据| D[方言数据接入]

C --> E[梳理历史数据对应关系]
D --> F[直接构建增量处理流程]

E --> G{是否存在md5对应关系}
G -->|有| H[直接关联raw表md5 and audio_md5]
G -->|无| I[用全量raw表覆盖obj_md5表]

H --> J[进入第一层过滤]
I --> J
F --> J

%% 第一层过滤
J --> K[第一层过滤:raw表过滤]
K --> L[基于UUID and audio_md5筛选]

L --> M[进入第二层过滤]

%% 第二层过滤
M --> N[第二层过滤:管线侧过滤]
N --> O[基于audio_md5去重]

%% md5处理
O --> P[转桶计算audio_md5]
P --> Q[统一维护md5表]

%% 数据写入
Q --> R[写入全量表]
R --> S[UUID去重]
S --> T[新表验证]
T --> U[写入原始表]

%% 输出
U --> V[最终去重数据输出]

%% 特殊分支
I --> W[维护无对应关系数据表]
W --> N

很好,这一块我帮你写一份实用 + 分场景的安装与使用指南,你可以直接补到博客里(也适合你平时工作用)👇


🚀 Mermaid 怎么安装和使用(全场景指南)

一、先说结论(你其实可能不需要安装)

👉 Mermaid 很多情况下"无需安装"!

你可以直接在这些地方用:

  • GitHub / GitLab(原生支持)
  • 飞书文档
  • Notion
  • Markdown 编辑器(Typora、Obsidian)

🧭 二、最简单用法(推荐)

✅ 方式1:在线使用(0安装)

直接用官方在线编辑器:

👉 Mermaid Live Editor

使用步骤:

  1. 打开网站
  2. 左边写代码
  3. 右边自动生成图

示例:
开始
处理
结束

复制代码
flowchart TD
A[开始] --> B[处理]
B --> C[结束]

🖥️ 三、本地使用(开发常用)

✅ 方式2:Markdown 中使用(最推荐)

1. Typora

👉 Typora

步骤:
  1. 打开设置
  2. 勾选:Enable Mermaid
  3. 写代码:
markdown 复制代码
```mermaid
flowchart TD
A --> B
```

👉 自动渲染


2. Obsidian

👉 Obsidian

👉 默认支持 Mermaid,直接写即可


⚙️ 四、前端项目中使用(工程化)

✅ 方式3:npm 安装

适合你做:

  • 数据平台
  • 可视化系统
  • 前端项目

1. 安装

bash 复制代码
npm install mermaid

2. 使用(JS 初始化)

javascript 复制代码
import mermaid from 'mermaid';

mermaid.initialize({
  startOnLoad: true
});

3. HTML 写法

html 复制代码
<div class="mermaid">
flowchart TD
A --> B
</div>

👉 页面加载自动渲染


🧪 五、命令行使用(生成图片)

✅ 方式4:CLI 工具(生成 PNG / SVG)

安装:

bash 复制代码
npm install -g @mermaid-js/mermaid-cli

使用:

bash 复制代码
mmdc -i input.mmd -o output.png

👉 说明:

  • input.mmd:你的流程图代码
  • output.png:生成图片

🧱 六、不同场景推荐方案(重点)

场景 推荐方式
写博客 Markdown(Typora / Obsidian)
写文档 飞书 / Notion
画图临时用 Mermaid Live Editor
做系统开发 npm 引入
生成图片 CLI

⚠️ 七、常见问题

❓1:为什么不显示?

原因:

  • 没启用 Mermaid
  • Markdown 工具不支持
  • 语法写错

❓2:中文乱码?

解决:

  • 使用 UTF-8
  • 避免特殊符号

❓3:复杂图太乱?

建议:

  • 拆子流程(subgraph)
  • 改用 LR(横向)
  • 分层设计

🧠 八、你当前场景建议(非常重要)

你现在是做:

👉 数据处理 / pipeline / SQL / 系统流程

我建议你:

⭐ 最优组合:

  • 写方案 → Typora / 飞书
  • 画图 → Mermaid
  • 汇报 → 导出 PNG(CLI)

🎯 九、一句话总结

👉 Mermaid 不一定要安装,用 Markdown 就能直接画流程图;需要工程化再用 npm / CLI


相关推荐
优思学苑21 小时前
价值流程图:看到流程,而不只是步骤【精益管理CLMP】
流程图
bug总结2 天前
前端流程图vueflow
前端·流程图
米饭不加菜3 天前
Mermaid 流程图语法参考四
流程图
米饭不加菜5 天前
Mermaid 流程图语法参考三
流程图
米饭不加菜6 天前
Typora 原生流程图语法完全指南(Flowchart.js)
前端·javascript·流程图
米饭不加菜6 天前
Mermaid 流程图语法参考二
数据库·流程图
米饭不加菜6 天前
Mermaid 流程图语法参考一
流程图
Ysn07196 天前
利用豆包和draw.io快速绘制流程图
流程图·draw.io
Daorigin_com7 天前
从“被动领罚”到“主动合规”:强监管时代下,道本科技用数字化为企业筑牢“合规生命线”
大数据·数据仓库·科技·流程图·软件构建·数据库开发·数据库架构
十年一梦实验室7 天前
【ChatGPT】光纤激光器及其控制系统深度拆解、信息图10张、爆炸图10张、C++代码框架增强版Mermaid 流程图、时序图、类图与成员说明
流程图