Sequence Diagram 範本
用途:元件互動、訊息流、API 流程、Protocol 交握
適用場景:
- 「A 跟 B 在怎麼溝通」
- 「這個 API call 的完整流程」
- 「HSMS / Modbus protocol 交握步驟」
範本 1:基本 API Request-Response
關鍵語法:
->>實線箭頭(同步請求)-->>虛線箭頭(回應)<br/>換行participant X as 顯示名稱定義參與者
範本 2:Protocol 交握(SECS/GEM 範例)
關鍵語法:
rect rgba(R, G, B, A)顏色區塊(分組訊息)Note over X,Y: 文字跨兩個 participant 的註解W是你自訂字樣(SECS-II 的 wait bit)
範本 3:含條件分支(alt / opt)
關鍵語法:
alt/else/end— if-else 分支opt/end— 可選步驟(if 無 else)loop/end— 迴圈
範本 4:Pipeline 多 Agent 協作
關鍵語法:
actor用人形 icon(通常給使用者/客戶)participant用方框(通常給系統/服務)
範本 5:含時間延遲 / 非同步
使用時機:背景任務、事件驅動、長時間操作。
客製化指南
要注意的事
| 項目 | 建議 |
|---|---|
| Participant 數量 | 最多 5-7 個,超過難讀 |
| 訊息順序 | 必須是時間序,不能跳 |
| 訊息內容 | 具體(POST /api/orders)而非模糊(Call) |
| 註解 | 用 Note over 解釋非明顯邏輯 |
| 顏色區塊 | 用 rect 分 layer / phase |
何時不要用 sequenceDiagram
- 純資料流(無時間順序)→ 改用
flowchart - 狀態轉換(State)→ 改用
stateDiagram-v2 - 系統架構圖 → 改用
flowchart
Real-world 範例
internal/workflow/pipeline-workflow.md— Pipeline 5 階段 sequenceinternal/workflow/pipeline-messages.md— 訊息重投 sequence
快速參考
| 元素 | 語法 | 意義 |
|---|---|---|
| 同步呼叫 | A->>B: msg | 實線箭頭 |
| 回應 | B-->>A: reply | 虛線箭頭 |
| 非同步(火而不管) | A-)B: msg | 空心箭頭 |
| 自我呼叫 | A->>A: internal | 自指 |
| 跨參與者註解 | Note over A,B: text | 矩形框 |
| 分組區塊 | rect rgba(R,G,B,A) ... end | 彩色背景 |
| 條件分支 | alt / else / end | if-else |
| 可選 | opt / end | if |
| 迴圈 | loop / end | for |
| 並行 | par / and / end | parallel |