工欲善其事,必先利其器。
今天為大家分享的這些idea插件都是自己在開發(fā)實戰(zhàn)中一直使用的一些插件,真的是溜到起飛,非常的好用。
1、Alibaba Java Coding Guidelines
作為一名開發(fā)人員,《阿里巴巴開發(fā)手冊》我們基本人手必備,自覺遵循《阿里巴巴開發(fā)手冊》的開發(fā)規(guī)約,是我們作為一名優(yōu)秀開發(fā)人員的自我修養(yǎng)。然而諸多的開發(fā)規(guī)約,我們并不一定能夠逐條熟記于心,因此Alibaba Java Coding Guidelines插件的出現(xiàn)幫我們解決了這個問題。
安裝該插件后,代碼超過 80 行、手動創(chuàng)建線程池等,這些和《手冊》中的規(guī)約不符時,IDEA中會給出警告提示。
比如開發(fā)規(guī)約中約定:線程池不允許使用Executors去創(chuàng)建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學(xué)更加明確線程池的運行規(guī)則,規(guī)避資源耗盡的風(fēng)險。當我在使用Executors去創(chuàng)建時就會有如下提示:

建議大家一定一定一定要安裝該插件,它會幫助你檢查出很多隱患,督促你寫更規(guī)范的代碼。
2.Java Bean to Json
我們平時在用postman進行接口測試時,請求的參數(shù)需要在postman里一個一個輸入,如果參數(shù)較少還好,參數(shù)比較多類型又復(fù)雜的話,就很容易粗心出現(xiàn)錯誤。Java Bean to Json是Java bean 轉(zhuǎn)換 json 的一款 IntelliJ IDEA 插件。輕松的為我們解決了這個問題。使用效果如下:

是不是很省力呢?~
3、GenerateAllSetter
GenerateAllSetter插件:該插件作用是可以一鍵調(diào)用對象所有set方法,快速針對已有的model實體對象的屬性生產(chǎn)set代碼,免去我們在開發(fā)過程中set屬性值時還需要去實體對象中翻查的時間,生成的同時會附帶類型默認值。使用效果如下:

看,像上圖中的dto轉(zhuǎn)entity,如果我們純手敲的話,可能需要大約需要兩分鐘的時間,但是使用這個插件后,直接Alt+Enter一秒搞定,是不是很方便吶~
4、GsonFormat
在我們的日常開發(fā)過程中,如果說在進行API調(diào)用時,經(jīng)常需要解析其他服務(wù)返回json數(shù)據(jù),這個時候一般都要創(chuàng)建一個實體類,作為json數(shù)據(jù)的載體。每個不同結(jié)構(gòu)的json格式的數(shù)據(jù)都對應(yīng)一個實體類。如果要一一去寫這些實體類,是不是覺得很麻煩?
不要煩,GsonFormat為我們完美的解決了這個煩惱。GsonFormat插件可以根據(jù)json文本一鍵生成實體bean.使用效果如下:

如上圖中的json我們?nèi)绻兪智每赡苄枰辽賰煞昼姷臅r間,然后使用GsonFormat插件2秒搞定。是不是很棒棒吶~
5、SequenceDiagram
如下圖是我通過網(wǎng)關(guān)進行鑒權(quán)的一段代碼,可以通過該插件繪制出當前請求的調(diào)用鏈路。

6、MyBatis Log Plugin
我們在使用mybatis的時候有時候可能會遇到一些sql異常,這個時候就需要對執(zhí)行的sql語句進行檢查。然而mybatis一般使用log4j打印執(zhí)行的sql語句,類型下面這種的:

這個時候如果sql語句比較長比較復(fù)雜的話再手動拼接起來就會比較復(fù)雜,萬一再手抖一下還原sql的過程中弄點什么差錯出來的話就會很麻煩,浪費時間還解決不了問題,導(dǎo)致開發(fā)效率大打折扣,這個時候我們的一款優(yōu)秀的IDEA插件Mybatis Log Plugin就閃亮登場了。
點擊Tools工具欄的MyBatis Log Plugin選項 或 使用Ctrl+Alt+Shift+O快捷鍵啟動Mybatis Log Plugin插件。

程序運行時,MyBatis Log Plugin插件就會把mybatis輸出的sql日志還原成完整的sql語句。如下:

MyBatis Log Plugin插件還原的sql語句,是可執(zhí)行的sql語句,我們可以直接復(fù)制出來執(zhí)行,這樣是不是避免了出錯,還省了不少的時間呢?
7、Maven Helper
我們在開發(fā)的過程中經(jīng)常遇見jar包沖突的場景,如何才能快速的知道自己的項目中哪些依賴的Jar包沖突了呢?Maven Helper這個InteliJ IDEA的插件幫我們解決了這個問題。
Maven Helper安裝好之后,我們打開pom.xml文件,在底部會多出一個Dependency Analyzer選項,點開這個選項刷新,找到?jīng)_突,點擊右鍵,然后選擇Exclude即可排除沖突版本的Jar包。

看,是不是很快捷?在你還在糾結(jié)到底是哪行代碼導(dǎo)致了異常,哪個jar包產(chǎn)生了沖突時,你使用Maven Helper插件的同事或許已早早提交了代碼下班了。
8.SonarLint
Sonar是代碼質(zhì)量管理的一個插件,可以幫助我們檢測出項目中存在的以下問題:
缺乏單元測試。統(tǒng)計并展示單元測試覆蓋率
重復(fù)代碼。監(jiān)測項目中存在的重復(fù)代碼,并可以在線查看哪些代碼重復(fù)
注釋不足或過多。沒有注釋將使代碼可讀性變差,而過多的注釋又會使得開發(fā)人員花費過多的精力去閱讀注釋,違背初衷
潛在的缺陷。比如程序有可能產(chǎn)生空指針、數(shù)組越界等
不遵循代碼標準。如方法、類該大寫不大寫
糟糕的復(fù)雜度分布。文件、類、方法等,如果復(fù)雜度過高將難以改變,這會使得開發(fā)人員難以理解它們,且如果沒有自動化的單元測試,對于程序中的任何組件的改變都將可能導(dǎo)致需要全面的回歸測試
舉個例子:

上面動圖中,是我在開發(fā)的過程中由于粗心將兩個返回值類型不同的兩個值進行了equals比較,sonar在對該文件進行掃描時立馬檢測到這是一個無意義的比較,因為比較結(jié)果必將為false。從而規(guī)避一些不必要的bug和風(fēng)險。
9.Lombok
我們在開發(fā)中經(jīng)常需要寫的javabean,都需要花時間去添加相應(yīng)的getter/setter,也許還要去寫構(gòu)造器、equals等方法,而且需要維護,當屬性多時會出現(xiàn)大量的getter/setter方法,這些顯得很冗長也沒有太多技術(shù)含量,一旦修改屬性,就容易出現(xiàn)忘記修改對應(yīng)方法的失誤。
Lombok能通過注解的方式,在編譯時自動為屬性生成構(gòu)造器、getter/setter、equals、hashcode、toString方法。所有這些,我們只需幾個注解便可搞定。

10、Free MyBatis plugin
Free MyBatis plugin插件是mapper接口方法和mapper XML文件之間來回切換的插件。安裝之后具體使用效果如下:

點擊左邊欄的箭頭,即可在mapper和對應(yīng)的xml之間跳轉(zhuǎn),不用我們再手動搜索查找了,用起來是不是很舒服?
11.Programmer Motivator:Chaoyue Yang
看了前面那么多優(yōu)秀的插件想必大家也有些疲憊了。不要慌,我們的超越妹妹來啦~ Chaoyue Yang這款插件是我同事蛋哥最為鐘愛的一款插件。在 IntelliJ IDEA 中連續(xù)編寫代碼一小時,會有楊超越提醒你該休息啦~

什么??你說你不喜歡超越妹妹??沒關(guān)系,安裝完畢后,Setting——>Other Settings選擇“超越鼓勵師”,可以在相關(guān)界面更改相關(guān)的配置,在這里你可以換上你最鐘愛的女神/男神照片,設(shè)置你最滿意的文案和間隔提示時間。

設(shè)置好之后,就開始安心的敲代碼吧~敲累了你的女神/男神會來提示你,還可以欣賞一下女神的照片休息一下。