­

推薦4款個人珍藏的IDEA插件!幫你寫出不那麼差的程式碼

  • 2020 年 10 月 21 日
  • 筆記

@

目前的話,我(Guide哥)是在 Github 開源了兩個輪子,一個簡易的 RPC 框架,一個輕量級的 HTTP 框架。程式碼結構清晰,實現優雅(這個自誇就很不要臉),感興趣的小夥伴可以看一下。

在寫程式碼的時候,有幾個 IDEA 插件對於我規範程式碼以及更高效地完成編碼工作有奇效。

那今天就簡單聊聊我平時寫程式碼過程中,有哪些 IDEA 插件對我幫助最大吧!

Codota:程式碼智慧提示

我一直在用的一個插件,可以說非常好用了(我身邊的很多大佬平時寫程式碼也會用這個插件)。

Codota 這個插件用於智慧程式碼補全,它基於數百萬Java程式,能夠根據程式上下文提示補全程式碼。相比於IDEA自帶的智慧提示來說,Codota 的提示更加全面一些。

如果你覺得 IDEA 插件安裝的太多比較卡頓的話,不用擔心!Codota 插件還有一個對應的在線網站(//www.codota.com/code),在這個網站上你可以根據程式碼關鍵字搜索相關程式碼示例,非常不錯!

我在工作中經常會用到,說實話確實給我帶來了很大便利,比如我們搜索 Files.readAllLines相關的程式碼,搜索出來的結果如下圖所示:

另外,Codota 插件的基礎功能都是免費的。你的程式碼也不會被泄露,這點你不用擔心。

簡單來看看 Codota 插件的騷操作吧!

程式碼智慧補全

我們使用HttpUrlConnection 建立一個網路連接是真的樣的:

我們創建執行緒池現在變成下面這樣:

上面只是為了演示這個插件的強大,實際上創建執行緒池不推薦使用這種方式, 推薦使用 ThreadPoolExecutor 構造函數創建執行緒池。我下面要介紹的一個阿里巴巴的插件-Alibaba Java Code Guidelines 就檢測出來了這個問題,所以,Executors下面用波浪線標記了出來。

程式碼智慧搜索

除了,在寫程式碼的時候智慧提示之外。你還可以直接選中程式碼然後搜索相關程式碼示例。

Alibaba Java Code Guidelines:阿里巴巴 Java 程式碼規範

阿里巴巴 Java 程式碼規範,對應的Github地址為://github.com/alibaba/p3c 。非常推薦安裝!

安裝完成之後建議將與語言替換成中文,提示更加友好一點。

根據官方描述:

目前這個插件實現了開發手冊中的的53條規則,大部分基於PMD實現,其中有4條規則基於IDEA實現,並且基於IDEA Inspection實現了實時檢測功能。部分規則實現了Quick Fix功能,對於可以提供Quick Fix但沒有提供的,我們會儘快實現,也歡迎有興趣的同學加入進來一起努力。 目前插件檢測有兩種模式:實時檢測、手動觸發。

上述提到的開發手冊也就是在Java開發領域赫赫有名的《阿里巴巴Java開發手冊》。

手動配置檢測規則

你還可以手動配置相關 inspection規則:

使用效果

這個插件會實時檢測出我們的程式碼不匹配它的規則的地方,並且會給出修改建議。比如我們按照下面的方式去創建執行緒池的話,這個插件就會幫我們檢測出來,如下圖所示。

這個可以對應上 《阿里巴巴Java開發手冊》 這本書關於創建執行緒池的方式說明。

CheckStyle: Java程式碼格式規範。

為何需要CheckStyle插件?

CheckStyle 幾乎是 Java 項目開發必備的一個插件了,它會幫助我們檢查 Java 程式碼的格式是否有問題比如變數命名格式是否有問題、某一行程式碼的長度是否過長等等。

在項目上,通過項目開發人員自我約束來規範程式碼格式必然是不靠譜的! 因此,我們非常需要這樣一款工具來幫助我們規範程式碼格式。

如果你看過我寫的輪子的話,可以發現我為每一個項目都集成了 CheckStyle,並且設置了 Git Commit 鉤子,保證在提交程式碼之前程式碼格式沒有問題。

Guide哥造的輪子程式碼簡潔,結構清晰,歡迎學習,歡迎一起完善):

  1. guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基於 Netty+Kyro+Zookeeper 實現的自定義 RPC 框架-附詳細實現過程和相關教程)
  2. jsoncat :仿 Spring Boot 但不同於 Spring Boot 的一個輕量級的 HTTP 框架

Git 鉤子: Git 能在特定的重要動作比如commit、push發生時觸發自定義腳本。 鉤子都被存儲在 Git 目錄下的 hooks 子目錄中。 也即絕大部分項目中的 .git/hooks

如何在Maven/Gradle項目中集成 Checksytle?

一般情況下,我們都是將其集成在項目中,並設置相應的 Git 鉤子。網上有相應的介紹文章,這裡就不多提了。

如果你覺得網上的文章不直觀的話,可以參考我上面提到了兩個輪子:

  1. guide-rpc-framework :Maven項目集成 Checksytle。
  2. jsoncat :Gradle項目集成 Checksytle。

如果你在項目中集成了 Checksytle 的話,每次檢測會生成一個 HTML格式的文件告訴你哪裡的程式碼格式不對,這樣看著非常不直觀。通過 Checksytle插件的話可以非常直觀的將項目中存在格式問題的地方顯示出來。

如果你只是自己在本地使用,並不想在項目中集成 Checksytle 的話也可以,只需要下載一個 Checksytle插件就足夠了。

如何安裝?

我們直接在 IDEA 的插件市場即可找到這個插件。我這裡已經安裝好了。

安裝插件之後重啟 IDEA,你會發現就可以在底部菜單欄找到 CheckStyle 了。

如何自定義檢測規則?

如果你需要自定義程式碼格式檢測規則的話,可以按照如下方式進行配置(你可以導入用於自定義檢測規則的CheckStyle.xml文件)。

使用效果

配置完成之後,按照如下方式使用這個插件!

run-check-style

可以非常清晰的看到:CheckStyle 插件已經根據我們自定義的規則將項目中的程式碼存在格式問題的地方都檢測了出來。

SonarLint:幫你優化程式碼

SonarLint 幫助你發現程式碼的錯誤和漏洞,就像是程式碼拼寫檢查器一樣,SonarLint 可以實時顯示出程式碼的問題,並提供清晰的修復指導,以便你提交程式碼之前就可以解決它們。

並且,很多項目都集成了 SonarQube,SonarLint 可以很方便地與 SonarQube 集成。

我的開源項目推薦

  1. JavaGuide :「Java學習+面試指南」一份涵蓋大部分Java程式設計師所需要掌握的核心知識。準備 Java 面試,首選 JavaGuide!
  2. guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基於 Netty+Kyro+Zookeeper 實現的自定義 RPC 框架-附詳細實現過程和相關教程)
  3. jsoncat :仿 Spring Boot 但不同於 Spring Boot 的一個輕量級的 HTTP 框架
  4. programmer-advancement :程式設計師應該有的一些好習慣+面試必知事項!
  5. springboot-guide :Not only Spring Boot but also important knowledge of Spring(不只是SpringBoot還有Spring重要知識點)
  6. awesome-java :Collection of awesome Java project on Github(Github 上非常棒的 Java 開源項目集合).

我是 Guide 哥,一 Java 後端開發,會一點前端,自由的少年。我們下期再見!微信搜「JavaGuide」回復「面試突擊」領取我整理的 4 本原創PDF

我是 Guide 哥,一 Java 後端開發,會一點前端,自由的少年。我們下期再見!微信搜「JavaGuide」回復「面試突擊」領取我整理的 4 本原創PDF