横空出世!IDEA画图神器来了,比Visio快10倍!
程序員在工作中,經(jīng)常會(huì)有繪制時(shí)序圖、流程圖的需求,尤其是在寫文檔的時(shí)候。平時(shí)我們會(huì)選擇ProcessOn這類工具來繪制,但有時(shí)候用代碼來畫圖可能會(huì)更高效一點(diǎn),畢竟沒有比程序員更熟悉代碼的了。今天給大家推薦一款畫圖工具PlantUML,可以配合IDEA使用,畫圖更高效!
?
PlantUML簡介
PlantUML是一款開源的UML圖繪制工具,支持通過文本來生成圖形,使用起來非常高效。可以支持時(shí)序圖、類圖、對(duì)象圖、活動(dòng)圖、思維導(dǎo)圖等圖形的繪制。
下面使用PlantUML來繪制一張流程圖,可以實(shí)時(shí)預(yù)覽,速度也很快!
?
安裝
通過在IDEA中安裝插件來使用PlantUML無疑是最方便的,接下來我們來安裝下IDEA的PlantUML插件。
首先在IDEA的插件市場中搜索PlantUML,安裝這個(gè)排名第一的插件;
有時(shí)候網(wǎng)絡(luò)不好的話可能下載不下來,可以點(diǎn)擊Plguin homepage按鈕訪問插件主頁,然后選擇合適的版本下載壓縮包;
下載成功后,選擇從本地安裝即可。
?
使用
接下來我們使用PlantUML插件分別繪制時(shí)序圖、用例圖、類圖、活動(dòng)圖、思維導(dǎo)圖,來體驗(yàn)下PlantUML是不是真的好用!
時(shí)序圖
時(shí)序圖(Sequence Diagram),是一種UML交互圖。它通過描述對(duì)象之間發(fā)送消息的時(shí)間順序顯示多個(gè)對(duì)象之間的動(dòng)態(tài)協(xié)作。我們在學(xué)習(xí)Oauth2的時(shí)候,第一步就是要搞懂Oauth2的流程,這時(shí)候有個(gè)時(shí)序圖幫助可就大了。下面我們使用PlantUML來繪制Oauth2中使用授權(quán)碼模式頒發(fā)令牌的時(shí)序圖。
首先我們需要新建一個(gè)PlantUML文件,選擇時(shí)序圖;
我們可以通過PlantUML提供的語法來生成Oauth2的時(shí)序圖,語法還是非常簡單的,具體內(nèi)容如下;
該代碼將生成如下時(shí)序圖,用寫代碼的方式來畫時(shí)序圖,是不是夠炫酷;
本時(shí)序圖關(guān)鍵說明如下:
title可以用于指定UML圖的標(biāo)題;
通過actor可以聲明人形的參與者;
通過participant可以聲明普通類型的參與者;
通過as可以給參與者取別名;
通過->可以繪制參與者之間的關(guān)系,虛線箭頭可以使用-->;
在每個(gè)參與者關(guān)系后面,可以使用:給關(guān)系添加說明;
通過autonumber我們可以給參與者關(guān)系自動(dòng)添加序號(hào);
通過activate和deactivate可以指定參與者的生命線。
這里還有個(gè)比較神奇的功能,當(dāng)我們右鍵時(shí)序圖時(shí),可以生成一個(gè)在線訪問的鏈接;
直接訪問這個(gè)鏈接,可以在線訪問UML時(shí)序圖,并進(jìn)行編輯,是不是很酷!
用例圖
用例圖(Usecase Diagram)是用戶與系統(tǒng)交互的最簡表示形式,展現(xiàn)了用戶和與他相關(guān)的用例之間的關(guān)系。通過用例圖,我們可以很方便地表示出系統(tǒng)中各個(gè)角色與用例之間的關(guān)系,下面我們用PlantUML來畫個(gè)用例圖。
首先我們需要新建一個(gè)PlantUML文件,選擇用例圖,該用例圖用于表示顧客、主廚、美食家與餐館中各個(gè)用例之間的關(guān)系,具體內(nèi)容如下;
該代碼將生成如下用例圖;
本用例圖關(guān)鍵說明如下:
left to right direction表示按從左到右的順序繪制用例圖,默認(rèn)是從上到下;
通過package可以對(duì)角色和用例進(jìn)行分組;
通過actor可以定義用戶;
通過usecase可以定義用例;
角色和用例之間的關(guān)系可以使用-->來表示。
類圖
類圖(Class Diagram)可以表示類的靜態(tài)結(jié)構(gòu),比如類中包含的屬性和方法,還有類的繼承結(jié)構(gòu)。下面我們用PlantUML來畫個(gè)類圖。
首先我們需要新建一個(gè)PlantUML文件,選擇類圖,該圖用于表示Person、Student、Teacher類的結(jié)構(gòu),具體內(nèi)容如下;
該代碼將生成如下類圖,看下代碼和類圖,是不是發(fā)現(xiàn)和我們用代碼定義類還挺像的;
本類圖關(guān)鍵說明如下:
通過class可以定義類;
通過在屬性和方法左邊加符號(hào)可以定義可見性,-表示private,#表示protected,+表示public;
通過<|--表示類之間的繼承關(guān)系。
活動(dòng)圖
活動(dòng)圖(Activity Diagram)是我們用的比較多的UML圖,經(jīng)常用于表示業(yè)務(wù)流程,比如電商中的下單流程就可以用它來表示。下面我們用PlantUML來畫個(gè)活動(dòng)圖。
首先我們需要新建一個(gè)PlantUML文件,選擇活動(dòng)圖,這里使用了mall項(xiàng)目中購物車中生成確認(rèn)單的流程,具體內(nèi)容如下;
該代碼將生成如下活動(dòng)圖,在活動(dòng)圖中我們既可以用if else,又可以使用switch,甚至還可以使用while循環(huán),功能還是挺強(qiáng)大的;
本活動(dòng)圖關(guān)鍵說明如下:
通過start和stop可以表示流程的開始和結(jié)束;
通過:和;中間添加文字來定義活動(dòng)流程節(jié)點(diǎn);
通過if+then+endif定義條件判斷;
通過switch+case+endswitch定義switch判斷。
思維導(dǎo)圖
思維導(dǎo)圖(Mind Map),是表達(dá)發(fā)散性思維的有效圖形工具,它簡單卻又很有效,是一種實(shí)用性的思維工具。之前在我的mall學(xué)習(xí)教程中就有很多地方用到了,下面我們用PlantUML來畫個(gè)思維導(dǎo)圖。
首先我們需要新建一個(gè)PlantUML文件,選擇思維導(dǎo)圖,這里使用了mall學(xué)習(xí)路線中的大綱視圖,具體內(nèi)容如下;
該代碼將生成如下思維導(dǎo)圖,其實(shí)使用PlantUML我們可以自己定義圖形的樣式,這里我自定義了下顏色;
本思維導(dǎo)圖關(guān)鍵說明如下:
通過+和-可以表示思維導(dǎo)圖中的節(jié)點(diǎn),具有方向性;
通過[#顏色]可以定義節(jié)點(diǎn)的邊框顏色;
通過_可以去除節(jié)點(diǎn)的邊框;
?
總結(jié)
雖然目前可以繪制UML圖的圖形化工具很多,但是對(duì)于程序員來說,使用代碼來繪圖可能更直接,效率更高,尤其是配合IDEA使用。如果你想使用代碼來繪圖,不妨嘗試下PlantUML吧。
參考資料
官方文檔:https://plantuml.com/zh/
有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
總結(jié)
以上是生活随笔為你收集整理的横空出世!IDEA画图神器来了,比Visio快10倍!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 激怒开源社区,微软悄悄删除2500行功能
- 下一篇: 又学到了一个拒绝加班的技巧