老家已經下雪了,廣州也降溫了。今年的冬天來的格外早~要是在老家,這個時候應該玩嗨了,在廣州這個時間就只能老老實實敲代碼了。
在做源碼分析的時候,我們常常會有這樣一種需求,一堆源碼看完後,我想畫個時序圖把思路捋一下,像下面這樣:
畫圖的工具有很多,相信大部分小夥伴也都會畫。
然而,畫圖太費時間了!!!而且這個圖跟我們的代碼關聯性很大,就是照着代碼畫的。
那麼問題就來了,能不能照着代碼生成呢?要是能夠照着代碼生成,豈不是要爽很多。
今天松哥就給大家介紹一個我最近在用的 IDEA 插件 SequenceDiagram。
> 我不是那種收集狂,雖然我的筆記本並不卡,但是對於 IDEA 中安裝插件我還是非常慎重的,很少裝。不過這個 SequenceDiagram 確實不錯,幫了我大忙,因此這裏就給大家安利下。
1. 安裝
先來時說說安裝,IDEA 插件市場直接搜索並安裝,這個是基本技能,我就不多說了:
裝好之後記得重啓一下 IDEA。
2. 功能
再來說說這個插件都有哪些功能?
- 生成簡單的時序圖。
- 通過單擊時序圖上的文本來導航代碼。
- 可以從時序圖中刪除某一個類。
- 可以將時序圖導出爲圖像。
- 可以將時序圖導出爲 PlantUML 文件。
另外還有三個實驗性的功能:
- 智能界面
- Lambda 表達式
- Kotlin 支持
3. 用法
安裝好 SequenceDiagram 之後,我們可以從如下幾個地方啓用它:
- 在導航工具欄中,出現瞭如下圖標(IDEA 左下角):
- 工具菜單中 Tools -> Sequence Diagram
- 在編輯器右鍵菜單中 Sequence Diagram ...
- 在 IntentionAction 提示中 Generate sequence diagram(光標放在方法名上,按 alt+enter 或者 option+enter):
通過這些地方我們可以生成時序圖,最終生成的時序圖如下:
由圖中可以清楚的看到方法的調用以及返回過程。
這張圖中有幾個細節,我們分別來看下。
先看左邊一列按鈕。
第一個三角是重新生成按鈕(不好使,似乎有 BUG)。
第二個扳手是設置一些生成的細節,例如方法調用的深度,是否忽略 get/set,是否忽略私有方法/構造方法 等,如下圖:
下面的都是保存按鈕了,可以保存爲不同格式,小夥伴們可以自行嘗試。
再看右邊的圖。
鼠標雙擊類名/方法名,會跳轉到對應的類/方法上。
鼠標在類名/方法名上右鍵單擊,可以從圖中移除一個類/方法。
差不多就這些用法吧,比較簡單卻很管用的一個插件,感興趣的小夥伴可以試試哦~