硬核,這 3 款 IDE 插件讓你的代碼牢不可破
有一段時間沒去電影院了,上次看的還是戰(zhàn)爭題材的《八佰》,現(xiàn)在還能記得當(dāng)時的觀影感受:熱血沸騰的同時,一種寧死不屈的信念從心底油然而生。戰(zhàn)場雖然只有四行倉庫那么大點的地方,卻顯得牢不可破,敵人再兇猛的火力,似乎都無法有所突破。
作為和代碼打交道的我們,天敵除了亂改需求的“產(chǎn)品經(jīng)理”(請老老實實地背鍋),還有那無窮無盡永遠(yuǎn)也修改不完的 bug。為了抵御 bug 的侵?jǐn)_,我們想盡了各種辦法,不停地修繕工地,努力讓我們的代碼變得牢不可破。
這些努力當(dāng)中,有 3 款優(yōu)秀的 IDE 插件功不可沒。是哪 3 個呢?請腰桿挺直,眼睛睜大,大聲呼喊出它們的名字。
01、CheckStyle
Checkstyle 是一個靜態(tài)代碼分析工具,用來檢查 Java 源代碼是否符合編碼規(guī)則。
那編碼規(guī)則由誰定義才能比較被認(rèn)可呢?
除了 Sun,還有谷歌,可以吧?感興趣的小伙伴可以通過下面的地址閱讀一下谷歌的 Java 代碼規(guī)范。
https://google.github.io/styleguide/javaguide.html
可以在 Intellij IDEA 的插件市場里直接安裝 CheckStyle 這個插件。
點擊 OK 后,就可以在 Intellij IDEA 的底部看到「CheckStyle」面板,默認(rèn)支持 Sun 和谷歌的代碼規(guī)范。
選擇一種規(guī)則后,可以點擊左側(cè)的 2 個小圖標(biāo)對項目或者模塊進(jìn)行檢查(也可以使用右鍵「Check Current File」 檢查當(dāng)前類文件),然后就可以看到修改建議了。
不過,輸出的信息里有大量對代碼縮進(jìn)的建議,是因為 CheckStyle 默認(rèn)的縮進(jìn)規(guī)則是使用 2 個空格,但我更習(xí)慣使用 4 個空格,能不能自定義一下呢?
當(dāng)然可以。
第一步,按照下面的路徑把 CheckStyle 的 GitHub 倉庫導(dǎo)入到碼云(可以提高克隆速度)。
https://github.com/itwanger/checkstyle
第二步,使用 GitHub 桌面版把導(dǎo)入后的倉庫 clone 到本地。
PS:我已經(jīng)克隆過了,所以會有警告提示。
第三步,找到 src/main/resources/google_checks.xml 文件,修改 Indentation(縮進(jìn))元素后保存。
- <module name="Indentation">
- <property name="basicOffset" value="4"/>
- <property name="braceAdjustment" value="0"/>
- <property name="caseIndent" value="4"/>
- <property name="throwsIndent" value="4"/>
- <property name="lineWrappingIndentation" value="4"/>
- <property name="arrayInitIndent" value="4"/>
- </module>
第四步,打開 Intellij IDEA 的首選項,找到「Tools」→「Checkstyle」。
點擊「Configuration File」 欄目底部的「+」號,自定義 Checkstyle 規(guī)則。填寫「Description」,并將之前復(fù)制的路徑粘貼到「URL」中,點擊「Next」。
第五步,配置成功后,在「CheckStyle」面板看到我們自定義的檢查規(guī)則了。選中后,再次掃描,就可以看到縮進(jìn)的警告信息消失了。
如果團(tuán)隊內(nèi)部使用的話,也可以在谷歌和 sun 的代碼規(guī)約基礎(chǔ)上進(jìn)行一些調(diào)整,從而更符合團(tuán)隊開發(fā)的習(xí)慣,同時還能起到統(tǒng)一代碼規(guī)范的作用,美哉美哉。
02、Alibaba Java 代碼規(guī)范
《阿里巴巴 Java 開發(fā)手冊》自從第一個版本起,就倍受業(yè)界關(guān)注,畢竟是阿里出品啊。最新版是嵩山版,離線下載地址我貼一下:
https://pan.baidu.com/s/1iBVFWUPuJNFEBfG8cmd-aA 密碼:pplh
我看了很多遍,有些規(guī)約已經(jīng)深深地刻在腦海里,在寫代碼的時候就會特別注意。甚至有時候?qū)懲甏a,都要對照一遍規(guī)約,看看有哪些細(xì)節(jié)需要調(diào)整。
為了讓開發(fā)者更加方便、快速的將規(guī)范推動并執(zhí)行起來,阿里巴巴基于這本手冊的內(nèi)容,研發(fā)了一套自動化的 IDE 插件(有 Intellij IDEA 和 Eclipse 兩個版本)。
Intellij IDEA 可以直接在插件市場進(jìn)行下載安裝。
目前插件檢測有兩種模式:實時檢測和手動觸發(fā)。
1)實時檢測
《阿里巴巴 Java 開發(fā)手冊》的第一條規(guī)約如下:
實時檢測是默認(rèn)開啟的,我們來“明知故犯”一下:
在編碼的時候,插件就會及時的給出提示建議,說【_name】命名不能以_或$開始。
如果不喜歡實時檢測的話,可以通過「Tools」→「阿里編碼規(guī)約」→「關(guān)閉實時檢測功能」來進(jìn)行關(guān)閉。
2)手動觸發(fā)
在代碼編輯區(qū)域右鍵菜單選擇「編碼規(guī)約掃描」就可以對當(dāng)前文件進(jìn)行掃描,也可以選擇整個項目或者某個目錄進(jìn)行掃描。
插件掃描后,會將一些不合手冊上面的代碼按照 Blocker/Critical/Major 三個等級顯示出來,點擊某個修改建議可以直接跳轉(zhuǎn)到對應(yīng)的代碼處,這樣的話,修改起來就非常便捷了。
03、SonarLint
SonarLint 可讓我們在編寫代碼的時候就對錯誤和漏洞進(jìn)行修復(fù),像拼寫檢查器一樣,可以即時突出地顯示出編碼中的一些問題,并提供清晰的補(bǔ)救指導(dǎo),方便我們在提交代碼之前就解決它們。
SonarLint 支持很多種語言,包括 Java、Kotlin、JavaScript、Ruby、Python、PHP 等等。也支持很多種 IDE,包括 Eclipse、Intellij IDEA、Visual Studio、VS Code 等等。
Intellij IDEA 可以在插件市場直接安裝。
SonarLint 默認(rèn)也是開啟實時檢查的,當(dāng)我們在聲明 List 的時候沒有使用泛型,它不僅指出了問題,還給出了修改建議,甚至示例都寫好了,真貼心。
04、總結(jié)
好的編程規(guī)范有助于寫出易于閱讀、質(zhì)量更高、錯誤更少、更易于維護(hù)的程序。CheckStyle、Alibaba Java 代碼規(guī)范、SonarLint 這 3 款 Intellij IDEA 插件能在很大程度上幫助我們達(dá)到這個目的。
另外,如果你在 Intellij IDEA 插件市場中下載這 3 款插件的時候速度比較慢的話,可以通過下面的方式進(jìn)行下載,我已經(jīng)貼心地替你打包好了。
鏈接:https://pan.baidu.com/s/1W9AsoLrBJTEtE9JTJlqNXw 密碼:pa92
下載完成后,可以在 Intellij IDEA 的插件市場選擇本地路徑的方式進(jìn)行安裝。
直接選擇對應(yīng)的 zip 包就可以安裝了。
希望能對小伙伴們有所幫助,盡快安排一下吧,從此 bug 離我們遠(yuǎn)一點,少一點。
本文轉(zhuǎn)載自微信公眾號「沉默王二」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系沉默王二公眾號。