idea代码提示插件_IDEA 插件推荐 —— 让你写出好代码的神器!
概述
今天介紹的插件主要是圍繞編碼規(guī)范的。有追求的程序員,往往都有代碼潔癖,要盡量減少代碼的「壞味道」。
代碼靜態(tài)檢查是有很多種類,例如圈復(fù)雜度、重復(fù)率等。業(yè)界提供了很多靜態(tài)檢查的插件來識(shí)別這些不合規(guī)的代碼,幫助提高項(xiàng)目的質(zhì)量。比較知名的一個(gè)產(chǎn)品是 SonarQube,它提供了一個(gè)「門禁」平臺(tái),集成了很多靜態(tài)檢查檢查。下次有機(jī)會(huì)介紹一下該平臺(tái)的搭建。
本文主要介紹 IDEA 中對(duì)于 Java 語(yǔ)言靜態(tài)檢查的好插件:
Alibaba Java Coding Guidelines 阿里基于他們 Java 規(guī)范提供的插件
CheckStyle-IDEA 檢查代碼的格式是否符合規(guī)范
FindBugs-IDEA 檢查代碼是否有常見的一些 Bug
Alibaba Java Coding Guidelines
阿里巴巴 Java 編碼指南插件支持。
首先說說阿里的 p3c 項(xiàng)目,它的 Github 主頁(yè)地址是:https://github.com/alibaba/p3c 阿里之前開源過一份 Java 開發(fā)手冊(cè)。手冊(cè)從編程規(guī)約、異常日志、單元測(cè)試、MySQL 數(shù)據(jù)庫(kù)、工程結(jié)構(gòu)、設(shè)計(jì)規(guī)約等角度,介紹了阿里的 Java 開發(fā)規(guī)范,這個(gè)對(duì)于 Java 新手幫助挺大的,能夠?qū)W到不少東西。有一些坑可能老司機(jī)也會(huì)翻車。
泰山版-圖片來PDF 文檔,侵刪開發(fā)人員 Coding 時(shí),可能就忘記規(guī)范了,寫出來的代碼還是會(huì)有『壞味道』。這時(shí)候Alibaba Java Coding Guidelines 插件就派上用場(chǎng)了。它會(huì)根據(jù)上面的 Java 開發(fā)規(guī)范對(duì)你的代碼進(jìn)行檢查,不符合規(guī)范的代碼會(huì)有提示,并給出修改建議。阿里作為國(guó)內(nèi) Java 大廠,基于成千上萬(wàn)的工程師總結(jié)出來的踩坑經(jīng)驗(yàn),我相信給出的規(guī)范建議還是比較可靠的。
上個(gè)栗子:
1??String?str?=?"hello";2??for?(int?i?=?0;?i?100;?i++)?{
3??????str?=?str?+?"world!";
4??}
先不要往下看,試著分析一下這段代碼哪里可以優(yōu)化?
錯(cuò)誤示例其實(shí),插鍵掃描的結(jié)果不僅有這個(gè)問題,還有『魔法數(shù)字』的問題。插件的用法,見下面的截圖。
示例除此以外,建議在 IDEA 進(jìn)行代碼提交時(shí),勾選上它提供的檢查項(xiàng)按鈕,這樣如果有不合規(guī)的代碼進(jìn)行提交,就會(huì)提醒你修改:
commit-checks-jobCheckStyle-IDEA
插件項(xiàng)目主頁(yè):https://github.com/jshiell/checkstyle-idea
安裝好之后,進(jìn)入設(shè)置,勾選上你要選用的默認(rèn)檢查規(guī)范:
kl0L2s大廠往往都有自己的語(yǔ)言規(guī)范,可以導(dǎo)入選用:
導(dǎo)入規(guī)則右鍵菜單,選擇 Check Current File 即可檢查當(dāng)前文件是否符合編碼規(guī)范:
使用檢查結(jié)果:
效果如果不符合規(guī)范的寫法有點(diǎn)多,整改起來就會(huì)很痛苦了,這時(shí)候該怎么辦?有一個(gè)功能叫格式化代碼(Reformat Code),快捷鍵是:
Mac:Command+Option+L
Win:Ctrl+Shift+L
如果想按照你指定的規(guī)則進(jìn)行格式化,可以按照如下方式進(jìn)行自定義:
格式化規(guī)則導(dǎo)入FindBugs-IDEA
FindBugs 是一款老牌 Java 靜態(tài)檢查插件了。它的功能和阿里 p3c 那個(gè)插件很像,只不過它歷史悠久、國(guó)際化一點(diǎn)。它同樣的可以掃描代碼,發(fā)現(xiàn)一些可能會(huì)引入 Bug 的代碼段,給出參考建議。
啟動(dòng) FindBugs 的方式,右鍵菜單中,Findbugs 提供了好幾個(gè)選項(xiàng):
啟動(dòng)Analyze Current File:檢查當(dāng)前文件
Analyze Class uner Cursor:檢查光標(biāo)處的類
Analyze Package Files:檢查包文件
Analyze Modul Files:檢查 Module 文件
Analyze Project Files:檢查項(xiàng)目文件
Analyze Scope Files:檢查指定范圍內(nèi)的文件
Analyze All Modified Files:檢查所有修改過的文件
Analyze changelist files:檢查變更列表中的文件
檢查結(jié)果:
結(jié)果檢查結(jié)果分為如下類別:
Bad practice:不好的做法,代碼違反了公認(rèn)的最佳實(shí)踐標(biāo)準(zhǔn);
Malicious code vulnerbility:惡意的代碼漏洞;
Correctness:可能不正確,比如錯(cuò)誤的強(qiáng)制類型轉(zhuǎn)換;
Performance:潛在的性能問題;
Security:安全性;
Dodgy code:糟糕的代碼,FindBugs團(tuán)隊(duì)認(rèn)為該類型下的問題代碼導(dǎo)致 Bug 的可能性很高;
Experimental:實(shí)驗(yàn);
Multithreaded correctness:關(guān)注于同步和多線程問題;
Internationalization:國(guó)際化
掃描出來的結(jié)果怎么看懂,官網(wǎng)有專門的一頁(yè)介紹 FindBugs Bug Description http://findbugs.sourceforge.net/bugDescriptions.html
看懂結(jié)果除了上面右鍵菜單啟動(dòng)檢查之外,還可以在相應(yīng)文件夾右鍵菜單中啟動(dòng):
選中檢查針對(duì)檢查的嚴(yán)格程度,其實(shí)是可以調(diào)節(jié)的,建議修改為 low,這樣會(huì)盡可能的掃描出有潛在 Bug 的代碼片段:
嚴(yán)格程度總結(jié)
以上是目前工作中經(jīng)常用到的靜態(tài)代碼檢查插鍵,雖然不是用了它們就真的能寫出好代碼,但是這些工具的確能夠讓你在前人的肩膀上少踩一些坑。比如阿里的那個(gè)檢查插鍵,你可以按照它的提示,對(duì)照著他們的 Java 開發(fā)手冊(cè)查看,分析一下,為何他們會(huì)有如此的規(guī)約。高樓大廈不都是一磚一瓦砌成的嘛?小知識(shí)點(diǎn)的基礎(chǔ)打扎實(shí)了,才能走得更高!
由于國(guó)內(nèi)網(wǎng)絡(luò)問題,我提前將最新版的《阿里巴巴 Java 開發(fā)手冊(cè)(泰山版).pdf》上傳至云盤了,有需要的小伙伴公眾號(hào)后臺(tái)回復(fù) 泰山版 即可獲得下載鏈接。
一言
上周的寫的一篇文章分享到微信群里,群友有人指出來標(biāo)題有錯(cuò)別字,真是有點(diǎn)尷尬!其實(shí),我寫文章也比較隨意,也是最近才開始堅(jiān)持每周至少輸出一篇分享的。但想想既然寫了,就要盡量保證質(zhì)量。引以為戒,以后要認(rèn)真點(diǎn)才行!
目前分享的內(nèi)容主要是開發(fā)環(huán)境、效率工具等。自己一直對(duì)這方面的文章比較感興趣,因此之前就有相關(guān)積累。今后希望能通過閱讀帶來一些讀書總結(jié)的分享,也希望關(guān)注的同學(xué)后臺(tái)多留言,給出您的建議,感謝~
生命不息,折騰不止!關(guān)注 「Coder 魔法院」,祝你 Niubilitiy !
參考
代碼缺陷掃描神器——FindBugs:https://juejin.im/entry/591ad01ba22b9d005833903e
往期文章
IDEA 插件推薦——必不可少的變量名轉(zhuǎn)換神器
Windows 開發(fā)環(huán)境必備終端工具 Cmder
開發(fā)必備技能,針對(duì)Github Homebrew 等終端工具下載加速
Python 調(diào)試?yán)?ipdb
好看的人才能點(diǎn)總結(jié)
以上是生活随笔為你收集整理的idea代码提示插件_IDEA 插件推荐 —— 让你写出好代码的神器!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序包android.support.a
- 下一篇: 怎样用python批量处理文件夹_套娃式