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