IDEA 插件推薦 —— 讓你寫出好代碼的神器! IDEA 插件推薦 —— 讓你寫出好代碼的神器!

摘自:https://www.cnblogs.com/michael-xiang/p/13019603.html

IDEA 插件推薦 —— 讓你寫出好代碼的神器!

 

門

概述#

今天介紹的插件主要是圍繞編碼規範的。有追求的程序員,往往都有代碼潔癖,要儘量減少代碼的「壞味道」。

代碼靜態檢查是有很多種類,例如圈複雜度、重複率等。業界提供了很多靜態檢查的插件來識別這些不合規的代碼,幫助提高項目的質量。比較知名的一個產品是 SonarQube,它提供了一個「門禁」平臺,集成了很多靜態檢查檢查。下次有機會介紹一下該平臺的搭建。

本文主要介紹 IDEA 中對於 Java 語言靜態檢查的好插件:

Alibaba Java Coding Guidelines#

阿里巴巴 Java 編碼指南插件支持。

首先說說阿里的 p3c 項目,它的 Github 主頁地址是:https://github.com/alibaba/p3c 阿里之前開源過一份 Java 開發手冊。手冊從編程規約、異常日誌、單元測試、MySQL 數據庫、工程結構、設計規約等角度,介紹了阿里的 Java 開發規範,這個對於 Java 新手幫助挺大的,能夠學到不少東西。有一些坑可能老司機也會翻車。

泰山版-圖片來PDF 文檔,侵刪

開發人員 Coding 時,可能就忘記規範了,寫出來的代碼還是會有『壞味道』。這時候Alibaba Java Coding Guidelines 插件就派上用場了。它會根據上面的 Java 開發規範對你的代碼進行檢查,不符合規範的代碼會有提示,並給出修改建議。阿里作爲國內 Java 大廠,基於成千上萬的工程師總結出來的踩坑經驗,我相信給出的規範建議還是比較可靠的。

上個栗子:

Copy
  String str = "hello";
  for (int i = 0; i < 100; i++) {
      str = str + "world!";
  }

先不要往下看,試着分析一下這段代碼哪裏可以優化?

錯誤示例

其實,插鍵掃描的結果不僅有這個問題,還有『魔法數字』的問題。插件的用法,見下面的截圖。

示例

除此以外,建議在 IDEA 進行代碼提交時,勾選上它提供的檢查項按鈕,這樣如果有不合規的代碼進行提交,就會提醒你修改:

commit-checks-job

CheckStyle-IDEA#

插件

項目主頁:https://github.com/jshiell/checkstyle-idea

安裝好之後,進入設置,勾選上你要選用的默認檢查規範:

kl0L2s

大廠往往都有自己的語言規範,可以導入選用:

導入規則

右鍵菜單,選擇 Check Current File 即可檢查當前文件是否符合編碼規範:

使用

檢查結果:

效果

如果不符合規範的寫法有點多,整改起來就會很痛苦了,這時候該怎麼辦?有一個功能叫格式化代碼(Reformat Code),快捷鍵是:

  • Mac:Command+Option+L
  • Win:Ctrl+Shift+L

如果想按照你指定的規則進行格式化,可以按照如下方式進行自定義:

格式化規則導入

FindBugs-IDEA#

FindBugs 是一款老牌 Java 靜態檢查插件了。它的功能和阿里 p3c 那個插件很像,只不過它歷史悠久、國際化一點。它同樣的可以掃描代碼,發現一些可能會引入 Bug 的代碼段,給出參考建議。

啓動 FindBugs 的方式,右鍵菜單中,Findbugs 提供了好幾個選項:

啓動

  • Analyze Current File:檢查當前文件
  • Analyze Class uner Cursor:檢查光標處的類
  • Analyze Package Files:檢查包文件
  • Analyze Modul Files:檢查 Module 文件
  • Analyze Project Files:檢查項目文件
  • Analyze Scope Files:檢查指定範圍內的文件
  • Analyze All Modified Files:檢查所有修改過的文件
  • Analyze changelist files:檢查變更列表中的文件

檢查結果:

結果

檢查結果分爲如下類別:

  • Bad practice:不好的做法,代碼違反了公認的最佳實踐標準;
  • Malicious code vulnerbility:惡意的代碼漏洞;
  • Correctness:可能不正確,比如錯誤的強制類型轉換;
  • Performance:潛在的性能問題;
  • Security:安全性;
  • Dodgy code:糟糕的代碼,FindBugs團隊認爲該類型下的問題代碼導 Bug 的可能性很高;
  • Experimental:實驗;
  • Multithreaded correctness:關注於同步和多線程問題;
  • Internationalization:國際化

掃描出來的結果怎麼看懂,官網有專門的一頁介紹 FindBugs Bug Description http://findbugs.sourceforge.net/bugDescriptions.html

看懂結果

除了上面右鍵菜單啓動檢查之外,還可以在相應文件夾右鍵菜單中啓動:

選中檢查

針對檢查的嚴格程度,其實是可以調節的,建議修改爲 low,這樣會儘可能的掃描出有潛在 Bug 的代碼片段:

嚴格程度

總結#

以上是目前工作中經常用到的靜態代碼檢查插鍵,雖然不是用了它們就真的能寫出好代碼,但是這些工具的確能夠讓你能夠在前人的肩膀上少踩一些坑。比如阿里的那個檢查插鍵,你可以按照它的提示,對照着他們的 Java 開發手冊查看,分析一下,爲何他們會有如此的規約。高樓大廈不都是一磚一瓦砌成的嘛?小知識點的基礎打紮實了,才能走得更高!

關注

由於國內網絡問題,我提前將最新版的《阿里巴巴 Java 開發手冊(泰山版).pdf》上傳至雲盤了,有需要的小夥伴公衆號後臺回覆 泰山版 即可獲得下載鏈接。

一言#

上週的寫的一篇文章分享到微信羣裏,羣友有人指出來標題有錯別字,真是有點尷尬!其實,我寫文章也比較隨意,也是最近纔開始堅持每週至少輸出一篇分享的。但想想既然寫了,就要儘量保證質量。引以爲戒,以後要認真點才行!

目前分享的內容主要是開發環境、效率工具等。自己一直對這方面的文章比較感興趣,因此之前就有相關積累。今後希望能通過閱讀帶來一些讀書總結的分享,也希望關注的同學後臺多留言,給出你的建議,感謝~

生命不息,折騰不止!關注 「Coder魔法院」,祝你 Niubilitiy !

參考#

作者: Michael翔

出處:https://www.cnblogs.com/michael-xiang/p/13019603.html

版權:本文采用「署名-非商業性使用-相同方式共享 4.0 國際」知識共享許可協議進行許可。

 

 
分類: Tools-Dev
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章