@
目前的話,我(Guide哥)是在 Github 開源了兩個輪子,一個簡易的 RPC 框架,一個輕量級的 HTTP 框架。代碼結構清晰,實現優雅(這個自誇就很不要臉),感興趣的小伙伴可以看一下。
在寫代碼的時候,有幾個 IDEA 插件對於我規范代碼以及更高效地完成編碼工作有奇效。
那今天就簡單聊聊我平時寫代碼過程中,有哪些 IDEA 插件對我幫助最大吧!
Codota:代碼智能提示
我一直在用的一個插件,可以說非常好用了(我身邊的很多大佬平時寫代碼也會用這個插件)。
Codota 這個插件用於智能代碼補全,它基於數百萬Java程序,能夠根據程序上下文提示補全代碼。相比於IDEA自帶的智能提示來說,Codota 的提示更加全面一些。
如果你覺得 IDEA 插件安裝的太多比較卡頓的話,不用擔心!Codota 插件還有一個對應的在線網站(https://www.codota.com/code),在這個網站上你可以根據代碼關鍵字搜索相關代碼示例,非常不錯!
我在工作中經常會用到,說實話確實給我帶來了很大便利,比如我們搜索 Files.readAllLines
相關的代碼,搜索出來的結果如下圖所示:
另外,Codota 插件的基礎功能都是免費的。你的代碼也不會被泄露,這點你不用擔心。
簡單來看看 Codota 插件的騷操作吧!
代碼智能補全
我們使用HttpUrlConnection
建立一個網絡連接是真的樣的:
我們創建線程池現在變成下面這樣:
上面只是為了演示這個插件的強大,實際上創建線程池不推薦使用這種方式, 推薦使用 ThreadPoolExecutor
構造函數創建線程池。我下面要介紹的一個阿里巴巴的插件-Alibaba Java Code Guidelines 就檢測出來了這個問題,所以,Executors
下面用波浪線標記了出來。
代碼智能搜索
除了,在寫代碼的時候智能提示之外。你還可以直接選中代碼然后搜索相關代碼示例。
Alibaba Java Code Guidelines:阿里巴巴 Java 代碼規范
阿里巴巴 Java 代碼規范,對應的Github地址為:https://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哥造的輪子(代碼簡潔,結構清晰,歡迎學習,歡迎一起完善):
- guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基於 Netty+Kyro+Zookeeper 實現的自定義 RPC 框架-附詳細實現過程和相關教程)
- jsoncat :仿 Spring Boot 但不同於 Spring Boot 的一個輕量級的 HTTP 框架
Git 鈎子: Git 能在特定的重要動作比如commit、push發生時觸發自定義腳本。 鈎子都被存儲在 Git 目錄下的
hooks
子目錄中。 也即絕大部分項目中的.git/hooks
。
如何在Maven/Gradle項目中集成 Checksytle?
一般情況下,我們都是將其集成在項目中,並設置相應的 Git 鈎子。網上有相應的介紹文章,這里就不多提了。
如果你覺得網上的文章不直觀的話,可以參考我上面提到了兩個輪子:
- guide-rpc-framework :Maven項目集成 Checksytle。
- jsoncat :Gradle項目集成 Checksytle。
如果你在項目中集成了 Checksytle 的話,每次檢測會生成一個 HTML格式的文件告訴你哪里的代碼格式不對,這樣看着非常不直觀。通過 Checksytle插件的話可以非常直觀的將項目中存在格式問題的地方顯示出來。
如果你只是自己在本地使用,並不想在項目中集成 Checksytle 的話也可以,只需要下載一個 Checksytle插件就足夠了。
如何安裝?
我們直接在 IDEA 的插件市場即可找到這個插件。我這里已經安裝好了。
安裝插件之后重啟 IDEA,你會發現就可以在底部菜單欄找到 CheckStyle 了。
如何自定義檢測規則?
如果你需要自定義代碼格式檢測規則的話,可以按照如下方式進行配置(你可以導入用於自定義檢測規則的CheckStyle.xml
文件)。
使用效果
配置完成之后,按照如下方式使用這個插件!
可以非常清晰的看到:CheckStyle 插件已經根據我們自定義的規則將項目中的代碼存在格式問題的地方都檢測了出來。
SonarLint:幫你優化代碼
SonarLint 幫助你發現代碼的錯誤和漏洞,就像是代碼拼寫檢查器一樣,SonarLint 可以實時顯示出代碼的問題,並提供清晰的修復指導,以便你提交代碼之前就可以解決它們。
並且,很多項目都集成了 SonarQube,SonarLint 可以很方便地與 SonarQube 集成。
我的開源項目推薦
- JavaGuide :「Java學習+面試指南」一份涵蓋大部分Java程序員所需要掌握的核心知識。准備 Java 面試,首選 JavaGuide!
- guide-rpc-framework :A custom RPC framework implemented by Netty+Kyro+Zookeeper.(一款基於 Netty+Kyro+Zookeeper 實現的自定義 RPC 框架-附詳細實現過程和相關教程)
- jsoncat :仿 Spring Boot 但不同於 Spring Boot 的一個輕量級的 HTTP 框架
- programmer-advancement :程序員應該有的一些好習慣+面試必知事項!
- springboot-guide :Not only Spring Boot but also important knowledge of Spring(不只是SpringBoot還有Spring重要知識點)
- awesome-java :Collection of awesome Java project on Github(Github 上非常棒的 Java 開源項目集合).
我是 Guide 哥,一 Java 后端開發,會一點前端,自由的少年。我們下期再見!微信搜“JavaGuide”回復“面試突擊”領取我整理的 4 本原創PDF
我是 Guide 哥,一 Java 后端開發,會一點前端,自由的少年。我們下期再見!微信搜“JavaGuide”回復“面試突擊”領取我整理的 4 本原創PDF