君子生非異也,善假於物也。bash
最近把背光調節的源碼梳理了一遍,到了要畫個時序圖,Visio 是個不錯的選擇,拖拖挺方便,但我不想用了,修改起來比較麻煩,我須要一勞永逸,就像 Markdown 這樣的利器,文本書寫,寫完一篇文章,全平臺通用。編輯器
我自己知道 Markdown 是支持時序圖的,那就是 Mermaid,Mermaid 可用於畫流程圖、狀態圖、時序圖、甘特圖,使用 JS 進行本地渲染,普遍集成於許多 Markdown 編輯器中。學習
sequenceDiagram
title: 序列圖sequence(示例)
participant A
participant B
participant C
note left of A: A左側說明
note over B: 覆蓋B的說明
note right of C: C右側說明
A->>A:本身到本身
A-->A:本身到本身
A->>B:實線帶箭頭
A->C:實線不帶箭頭
C-->>B:虛線帶箭頭
B-->A:虛線不帶箭頭
A-xB:實線箭頭帶叉
B--xC:虛線箭頭帶叉
複製代碼
在瞭解 Mermaid 時序圖語法,跟着示例畫出了個時序圖後,驚歎牛逼,我覺得有了大利器,當我實際去畫圖,涉及類不少,Mermaid 暴露了缺點,顯示出的時序圖是模糊的,所以本篇不打算花大篇幅介紹 Mermaid 了,你們知道 Mermaid 能夠畫簡單的時序圖這點就夠了。spa
個人剛需尚未解決,須要繼續尋找利器,就不得不試試 PlantUML,我自己也是知道 PlantUML,由於 PlantUML 配置複雜以及其語法看起來也比較複雜,所以一直沒有去學習 PlantUML,好吧,遇到困難真的不能選擇迴避,它必定會在某個時候再找回來的。插件
code.visualstudio.com/Downloadcode
可選的,建議安裝,若是想繪製除時序圖和活動圖之外的圖,就須要安裝 Graphviz 軟件。cdn
sudo apt-get install graphviz
複製代碼
Windows對象
Macip
PlantUML
Markdown Preview Enhanced
@startuml
title: 序列圖sequence(示例)
participant A
participant B
participant C
participant D
participant E
note left of A: A左側說明
note over D: 覆蓋D的說明
note right of F: F右側說明
A ->x B: 丟失的消息
B -> C: 實線箭頭
C ->> D: 實線細箭頭
D -\ E: 實線半箭頭
E -\\ F: 實線半箭頭
F --/ E: 虛線半箭頭
E -->o D: 虛線箭頭加圈
D --\o C: 虛線半箭頭加圈
C <--> B: 實線雙向箭頭
A --> A: 本身到本身
@enduml
複製代碼
是否是語法和 Mermaid 有點像啊,因此說 PlantUML 語法也沒那麼難。
PlantUML 官網:plantuml.com ,有詳細的語法文檔,先都過一遍,用到時能夠去查下。
其實 Android Studio 也能夠安裝 PlantUML,當我裝了,準備 Markdown 寫文章時,發現 Android Studio 只能畫圖,沒有知足個人剛需,最後才採用 VSCode + Graphviz + PlantUML + Markdown Preview Enhanced,效果也是槓槓的。
PlantUML 除了能畫時序圖,還能畫用例圖、類圖、活動圖、組件圖、狀態圖、對象圖、部署圖等,功能實在太強大了,後面有須要,再一一介紹。
更多文章請關注公號:吳小龍同窗。