ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

代码即画笔:用 Markdown 优雅地“写”出一张时序图

代码即画笔:用 Markdown 优雅地“写”出一张时序图 专注于软件架构和系统设计的开发者往往需要清晰的图表来梳理复杂的业务流程。在众多的图表类型中时序图Sequence Diagram也称顺序图是展示对象之间交互顺序、生命周期以及消息传递最直观的工具。传统的绘图方式如 Visio 或在线拖拽工具在修改时不仅费时费力而且版本管理极其困难。而借助于 Markdown 配合其扩展语法 Mermaid你只需要编写简单的纯文本即可在文章、文档或 GitHub 中秒级渲染出高颜值、易维护的时序图。本文将为你系统性地整理如何在 Markdown 中从零到一实现时序图并提供开箱即用的代码模板。 一、 核心基础语法在支持 Mermaid 的 Markdown 渲染器中你需要使用 mermaid 代码块进行包裹并在首行写上sequenceDiagram 声明这是一张时序图。1.1 基础示例与效果sequenceDiagramautonumberactor 用户participant 客户端participant 服务器participant 数据库用户-客户端: 输入账号密码并点击登录 activate 客户端 客户端-服务器: 发送登录请求 (POST /api/login) activate 服务器 服务器-数据库: 查询用户信息 activate 数据库 数据库--服务器: 返回用户数据 deactivate 数据库 Note over 服务器: 校验密码与生成 Token 服务器--客户端: 返回登录成功响应 Token deactivate 服务器 客户端--用户: 跳转到系统首页 deactivate 客户端1.2 对应 Markdown 源码数据库服务器客户端数据库服务器客户端校验密码与生成 Token用户输入账号密码并点击登录1发送登录请求 (POST /api/login)2查询用户信息3返回用户数据4返回登录成功响应 Token5跳转到系统首页6用户 二、 常用关键字与连线规范想要编写出更复杂的时序图你需要熟练掌握以下几类高频组件1. 参与者声明 (Participants Actors)默认情况下Mermaid 会根据你书写的顺序自左向右绘制参与者。如果你想提前定义好它们的顺序或赋予特殊样式可以使用以下声明actor渲染为一个小人图标通常用来代表系统的外部用户。participant渲染为标准的矩形框代表系统、服务、模块或类。as别名机制当系统名称很长时可以设置一个简写。例如participant API as 支付网关系统。2. 连线样式 (Messages Arrows)通过不同的连线可以表达同步、异步、返回等不同的消息类型源码符号渲染效果语义解释A - B实线无箭头基础连接 / 关联A - B实线带尖箭头同步消息最常用A -x B实线带叉号异步消息A -- B虚线无箭头关联 / 状态变化A -- B虚线带尖箭头返回响应最常用A --x B虚线带叉号异步返回响应3. 生命周期激活 (Activation)为了让图表清晰地展示出某个对象当前正处于“忙碌”或“执行”状态可以使用激活状态activate 参与者开始激活当前对象的生命线。deactivate 参与者关闭当前对象的生命线。快捷简写在消息连线末尾加上 代表激活加上 - 代表销毁。例如A - B: 请求B --- A: 响应。4. 注释与文本 (Notes)在时序图中你可以跨越一个或多个参与者添加高亮注释块用来解释复杂的内部逻辑Note left of 参与者: 提示文本Note right of 参与者: 提示文本Note over 参与者A, 参与者B: 跨多列的提示文本 三、 进阶高级控制流真实世界的业务逻辑往往包含条件分支、循环或者并发Mermaid 同样提供了对应的流控制关键字。3.1 条件分支 (alt / else 和 opt)alt / else用于表示 If-Else 的双向或多向条件分支。opt用于表示 Optional 的单向可选分支如果…则…否则什么都不做。开票系统核心网关用户开票系统核心网关用户alt[余额充足][余额不足]opt[需要开具电子发票]发起交易请求扣款成功提示交易完成提示交易失败请更换银行卡提交发票申请3.2 循环结构 (loop)用于表示某段交互会重复执行直到满足特定条件。任务队列服务端客户端任务队列服务端客户端loop[每隔 5 秒执行一次]发起长轮询请求检查任务状态返回当前状态任务完成返回最终结果 四、 最佳实践与渲染工具推荐一键自动编号在时序图首行紧跟着 sequenceDiagram 下面写上 autonumber。它可以帮你的图表按步骤自动生成 1, 2, 3… 的序号在和产品经理或测试同学对齐流程时极其高效。支持 Markdown 时序图的常见工具Typora本地 Markdown 编辑器神器原生完美支持 Mermaid 渲染。Notion / Obsidian支持通过 /mermaid 代码块直接嵌入并实时预览。GitHub / GitLab在其原生 Markdown 文档或 Issue 中直接支持 Mermaid 渲染。VS Code 插件安装 Markdown Preview Mermaid Support 即可在预览中查看效果。通过文本来“编写”时序图不仅提升了文档的可读性更让代码和设计文档能够真正做到同时更新、版本可追溯。
返回列表