最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

IDEA激活碼,SequenceDiagram: 一鍵可以生成時(shí)序圖

2023-05-05 15:20 作者:IDEA精選教程  | 我要投稿

在平時(shí)的學(xué)習(xí)/工作中,我們經(jīng)常會(huì)面臨以下場(chǎng)景:

  1. 閱讀別人的代碼。

  2. 閱讀框架源碼。

  3. 閱讀自己很久之前寫的代碼。

千萬不要覺得工作就是單純寫代碼。實(shí)際上,在工作中,你會(huì)發(fā)現(xiàn)大部分時(shí)間都花在了閱讀和理解已有代碼上。

為了更快、更清晰地搞清對(duì)象之間的調(diào)用關(guān)系,我經(jīng)常需要用到序列圖。手動(dòng)畫序列圖很麻煩,也很費(fèi)時(shí)間。不過,IDEA 提供了一個(gè)叫做 SequenceDiagram 的插件,可以幫助我們解決這個(gè)問題。通過 SequenceDiagram 這個(gè)插件,我們可以一鍵生成時(shí)序圖。

什么是序列圖?

有很多關(guān)于序列圖的定義在網(wǎng)上流傳,但我覺得它們都太過抽象,不太容易理解。最神奇的是,大部分文章對(duì)于序列圖的定義竟然都是一模一樣的。看來大家都充分發(fā)揮了寫代碼的“精髓”??!

我來簡(jiǎn)單說一下我的理解吧!不過,說實(shí)話,我自己對(duì)于序列圖也不是很清晰。下面是我對(duì)它的理解,如有問題或需要完善的地方,請(qǐng)指出。

序列圖

序列圖(Sequence Diagram),也稱為循序圖,是一種UML行為圖,用于表示系統(tǒng)執(zhí)行某個(gè)方法/操作(如登錄操作)時(shí),對(duì)象之間的順序調(diào)用關(guān)系。

這個(gè)順序調(diào)用關(guān)系可以這樣理解:你需要執(zhí)行系統(tǒng)中某個(gè)對(duì)象 a 提供的方法/操作 login(登錄),但是這個(gè)對(duì)象又依賴了對(duì)象 b 提供的方法 getUser(獲取用戶)。因此,這里就有了 a -> b 調(diào)用關(guān)系。

以下是兩個(gè)例子:

下圖是微信支付的業(yè)務(wù)流程時(shí)序圖。該圖描述了微信支付相關(guān)角色(顧客、商家等)在微信支付場(chǎng)景下,基礎(chǔ)支付和支付的順序調(diào)用關(guān)系。

下圖展示了我編寫的 HTTP 框架中執(zhí)行某個(gè)方法的序列圖。該圖描述了在調(diào)用InterceptorFactory類的loadInterceptors()方法時(shí)涉及到的類之間的調(diào)用關(guān)系。

此外,國內(nèi)一般更喜歡把 Sequence Diagram 稱為“時(shí)序圖”。

如果從純翻譯的角度來看,sequence 這個(gè)單詞并不具備“時(shí)間”的意思,只有“序列”、“順序”等含義。因此,有人認(rèn)為“時(shí)序圖”這個(gè)說法并不準(zhǔn)確。但從定義的角度來看,“時(shí)序圖”這個(gè)描述是沒問題的。因?yàn)?Sequence Diagram 中每條消息的觸發(fā)時(shí)機(jī)確實(shí)是按照時(shí)間順序執(zhí)行的。

我認(rèn)為,無論是稱呼 Sequence Diagram 為“時(shí)序圖”還是“序列圖”,都沒有問題,不必過于糾結(jié)。

哪些場(chǎng)景下需要查看類的時(shí)序圖?

在很多場(chǎng)景下,我們都需要用到時(shí)序圖,例如:

  1. 閱讀源碼: 在閱讀源碼時(shí),您可能需要查看涉及相關(guān)類的調(diào)用關(guān)系的目標(biāo)方法的調(diào)用。特別是在代碼的調(diào)用層級(jí)比較多的時(shí)候,對(duì)于我們理解源碼非常有用。(題外話:實(shí)際工作中,大部分時(shí)間我們都花在了閱讀理解已有代碼上。)

  2. 技術(shù)文檔編寫: 在編寫項(xiàng)目介紹文檔時(shí),為了讓別人更容易理解您的代碼,您需要根據(jù)核心方法為相關(guān)的類生成時(shí)序圖來展示它們之間的調(diào)用關(guān)系。

  3. 梳理業(yè)務(wù)流程: 當(dāng)我們的系統(tǒng)業(yè)務(wù)流程比較復(fù)雜時(shí),我們可以通過序列圖將涉及的重要角色和對(duì)象之間的關(guān)系可視化出來。

  4. ......

如何使用 IDEA 根據(jù)類中方法生成時(shí)序圖?

通過 SequenceDiagram 這個(gè)插件,我們可以一鍵生成時(shí)序圖。

此外,您還可以:

  1. 單擊時(shí)序圖中的類/方法即可跳轉(zhuǎn)到相應(yīng)位置。

  2. 在時(shí)序圖中刪除相應(yīng)的類或方法。

  3. 將生成的時(shí)序圖導(dǎo)出為 PNG 格式的圖片。

安裝

您可以直接在 IDEA 的插件市場(chǎng)中找到此插件。我已經(jīng)將其安裝好了。

提示

如果你因?yàn)榫W(wǎng)絡(luò)問題沒辦法使用 IDEA 自帶的插件市場(chǎng)的話,也可以通過IDEA 插件市場(chǎng)的官網(wǎng)手動(dòng)下載安裝。

簡(jiǎn)單使用

  1. 選中方法名(注意不要選類名),然后點(diǎn)擊鼠標(biāo)右鍵,選擇?Sequence Diagram?選項(xiàng)即可!

  1. 配置生成的序列圖的一些基本的參數(shù)比如調(diào)用深度之后,我們點(diǎn)擊 ok 即可!

你還可以通過生成的時(shí)序圖來定位到相關(guān)的代碼,這對(duì)于我們閱讀源碼的時(shí)候尤其有幫助!

時(shí)序圖生成完成之后,你還可以選擇將其導(dǎo)出為圖片。


IDEA激活碼,SequenceDiagram: 一鍵可以生成時(shí)序圖的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
大厂| 霍林郭勒市| 禹城市| 文安县| 鄂托克旗| 德庆县| 鱼台县| 县级市| 湘阴县| 锡林浩特市| 巴楚县| 五大连池市| 卢龙县| 镇原县| 兴安盟| 资中县| 乌苏市| 林甸县| 来安县| 通许县| 河津市| 固原市| 磐安县| 珲春市| 曲靖市| 奉节县| 富裕县| 乐都县| 长子县| 绵阳市| 新源县| 汕头市| 天等县| 濮阳县| 昌图县| 河东区| 巴彦县| 济阳县| 锡林浩特市| 滁州市| 吉隆县|