时序图入门

时序图是描述交互流程最直观的图种之一。这篇入门指南讲清楚时序图的核心元素、何时用、与流程图的差异,并附 AI 生成 prompt 模板,帮你 5 秒画出登录、支付、调用链等常见时序图。

作者:松柏

时序图入门

时序图用参与者与消息箭头描述「谁在什么时候调用谁」。构图AI 可一句话生成手绘风时序图,适合登录、支付与微服务调用链讲解。

时序图用「参与者 + 时间轴」描述多方交互顺序,适合登录、支付、微服务调用链;它回答谁在何时调用谁,而不是单流程有哪些分支。

时序图(Sequence Diagram)是 UML 行为图里最实用的一种。它比流程图更适合表达「谁先调用谁、什么时候返回」这类有先后顺序的多方协作。学会何时用、核心元素是什么,再配上 AI 生成,可以在几秒内得到可编辑的手绘风时序图。

构图AI 基于 Excalidraw,支持 12 种图类型(含时序图技能),示例库约 25 个模板;生成结果可导出 PNG / SVG / .excalidraw

这类图是什么 / 何时用

简单说:只要你想表达「调用链 + 时序」就用时序图

典型适用场景:

  • 登录 / 认证:客户端 → 网关 → 鉴权服务 → Redis → DB。
  • 支付:App → 后端 → 支付网关 → 银行 → 回调。
  • 微服务调用链:A 调 B,B 调 C,C 异步通知 B。
  • 三方 OAuth:客户端 → 业务后端 → IdP → 回调 → 客户端。

何时不该用时序图:纯粹状态流转(状态图)、组织层级(组织架构图)、发散结构(思维导图)、部署拓扑(架构 / 拓扑图)。

核心元素

一张完整的时序图通常包含:

  1. 角色 / 参与者(Actor / Participant):顶部从左到右的盒子。
  2. 生命线(Lifeline):角色下方垂直虚线,表示生命周期。
  3. 激活条(Activation Bar):表示「此刻正在处理」。
  4. 消息(Message)
    • 实线 + 实心箭头 ≈ 同步调用;
    • 开口箭头 ≈ 异步;
    • 虚线 ≈ 返回 / 响应。
  5. 注释(Note):解释超时、幂等、重试等。
  6. 组合片段(可选):alt / opt / loop 表达分支与循环。

参与者建议控制在 5–8 个;更多就按子域拆成多张时序图。

时序图 vs 流程图

维度时序图流程图
核心问题谁与谁、按何顺序交互步骤与条件如何分支
横轴参与者通常无「角色横轴」
纵轴时间向下流程推进
典型场景登录回调、支付通知订单状态、审批流
分支表达alt / opt 框菱形判断

实际项目中,登录链路用时序图、订单状态流转用流程图是常见分工。也可以同一业务两张图:时序抠调用,流程抠业务规则。

手动画图 vs AI 生成

PlantUML / Mermaid 写时序图要记语法,draw.io 拖拽对齐费时。AI 生成是当前最快的草稿方案:

工具耗时风格可读性
PlantUML / Mermaid5–15 分钟(写代码)工程感高(进 Git 友好)
draw.io15–30 分钟(拖拽)可定制
构图AI约 5–10 秒手绘风高(评审友好)

对评审、文档配图、内部分享这类「内容 > 像素」的场景,手绘风往往更受欢迎。登录后 1 次免费额度可体验;VIP 不限制 AI 画图,适合把支付、登录、退款多条时序都画齐。

用构图AI 怎么画

打开 画图页,声明时序图并输入:

画一张用户登录的时序图,手绘风。
角色:客户端、网关、鉴权服务、Redis、用户数据库。
流程:
1. 客户端 → 网关:POST /login {account, password}
2. 网关 → 鉴权服务:转发请求
3. 鉴权服务 → 用户数据库:查询账号
4. 用户数据库 → 鉴权服务:返回用户记录(含密码哈希)
5. 鉴权服务 → Redis:写入会话 Token
6. 鉴权服务 → 网关 → 客户端:返回 Access Token + Refresh Token

可直接套用 登录时序示例支付时序示例。写 prompt 时用编号列表,AI 更容易保持时间顺序;生成后若角色左右反了,在画布上拖参与者比改代码轻松。

行业变体

  • 电商支付:增加支付网关、银行;回调与幂等要画清楚。
  • 小程序登录:角色换成小程序客户端 / 微信 / 业务后端。
  • 微服务:多内部服务组合同步 + 异步,严格区分箭头类型。
  • 长耗时任务:同步返回「已接受」+ 异步完成通知,避免画成一直阻塞。

导出建议:PNG 贴 PRD,SVG 进幻灯片,.excalidraw 留给下次补 alt 分支。需要进 Git 的长期真相源时,可另维护一份 Mermaid,与构图AI 可视化版并用。

写给初学者的阅读顺序

读懂别人的时序图,建议按固定顺序扫一眼,而不是从头到尾盯箭头:

  1. 先看参与者从左到右是谁(通常发起方在最左)。
  2. 再找第一条从左出发的实线消息——那是故事开端。
  3. 顺着时间向下,遇到返回虚线就理解「这一步结束」。
  4. 看到 alt 框先读条件文字,再决定走哪条分支。
  5. 最后看注释里的超时、重试、幂等,那些往往是事故高发点。

自己画时反过来做:先列参与者,再写编号消息,最后加分支与注释。把这三步写进构图AI 的 prompt,生成质量会稳定很多。若图用于接口评审,消息上尽量带上方法名或事件名;若图用于业务讲解,可以用中文动作名,减少非开发同事的阅读门槛。手绘风并不妨碍严谨——严谨来自消息是否完备,而不是线条是否直角。

当链路跨越三方系统时,记得把「我们可控」与「不可控」参与者用注释区分,超时与重试策略往往只对我们自己的服务生效。把这一点画清楚,能减少线上甩锅式争论。

相关指南

可引用的实践数字

  • 构图AI 提供 12 种图类型技能,时序图是其中之一。
  • 示例库约有 25 个模板,含登录、支付、OAuth 等时序场景。
  • 导出支持 PNG / SVG / .excalidraw 三种格式。

选型速查

诉求更合适的图
谁先调用谁时序图
步骤与分支流程图
状态如何变状态机图
数据怎么流数据流图

延伸阅读

常见问题

时序图一定要画激活条吗?+

评审沟通可以省略激活条,只保留参与者与消息箭头;需要强调处理耗时或并发时再补激活条与注释。

同步和异步箭头怎么区分?+

同步用实线实心箭头,异步用开口箭头或虚线并标注 MQ/事件名;返回消息用虚线。在 prompt 里写明「异步回调」更容易画对。

时序图和流程图怎么选?+

多方调用顺序用时序图;单流程分支判断用流程图。登录链路常用时序,订单状态流转常用流程或状态机。

消息太多挤在一起怎么办?+

拆成「主路径」与「异常路径」两张图,或按阶段分片(鉴权/下单/回调)。一张图超过 12 条消息通常难读。

相关指南