AS 阿里巴巴Java開發規約 CheckStyle-IDEA


Alibaba Java Coding Guidelines 簡介

 
Alibaba Java Coding Guidelines 是阿里巴巴發布的基於 IDEA 的 Java 開發規約掃描插件。
 
經過247天的持續研發,阿里巴巴於10月14日在杭州雲棲大會上,正式發布眾所期待的《阿里巴巴Java開發規約》掃描插件!該插件由阿里巴巴P3C項目組研發。P3C是世界知名的反潛機,專門對付水下潛水艇, 項目組使用此名稱寓意是掃描出所有潛在的代碼隱患。這個項目組是阿里巴巴開發愛好者自發組織形成的虛擬項目組,把《阿里巴巴Java開發規約》強制條目轉化成自動化插件,並實現部分的自動編程。
 
阿里技術公眾號於今年的2月9日首次公布《阿里巴巴Java開發規約》,瞬間引起全民代碼規范的熱潮,上月底又發布了PDF的終極版,大家踴躍留言,期待配套的靜態掃描工具開放出來。 為了讓開發者更加方便、快速將規范推動並實行起來,阿里巴巴基於手冊內容,研發了一套自動化的IDE檢測插件(IDEA、Eclipse)。
 
該插件在掃描代碼后,將不符合規約的代碼按Blocker/Critical/Major三個等級顯示在下方,甚至在IDEA上,我們還基於Inspection機制提供了實時檢測功能,編寫代碼的同時也能快速發現問題所在。而對於歷史代碼,部分規則實現了批量一鍵修復的功能,為首次在成熟項目上使用插件,做了非常友善的支持。 如此爽心悅目的功能是不是很值得擁有?提升代碼質量,提高團隊研發效能,插件將會一路同行。
 
目前插件實現了開發手冊中的的53條規則,大部分基於PMD實現,其中有4條規則基於IDEA實現,並且基於IDEA Inspection實現了實時檢測功能。部分規則實現了Quick Fix功能,對於可以提供Quick Fix但沒有提供的,我們會盡快實現,也歡迎有興趣的同學加入進來一起努力。 
 

使用文檔

基本使用

在AS的 Setting >> Plugins >> Browse repositories ,搜索關鍵字『alibaba』,在結果中找到 Alibaba Java Coding Guidelines 並安裝即可。
 
因為插件zip包托管在Jetbrains官方CDN上,所以是從國外的服務器進行下載,可能會出現超時的情況,如果安裝不了,可以通過手動下載安裝包進行安裝。 插件地址
下載后,在AS的 Settings >> Plugins >> Install plugin from disk...
 
安裝之后,它會默認使用你當前設備選擇的語言環境進行配置語言,當然你也可以自行切換語言,暫時僅支持 中文 和 英語。
你可以在 Tools >> Alibaba Coding Guidelines >> Switch language to Xxx 進行切換:
中文亂碼解決方法: Appearance&Behavior -> Appearance -> UI Options -> Name 里面設置成中文字體,如微軟雅黑。
 

實時檢測(Inspections支持)

IDEA 的 Inspections 相信大家應該都不陌生,它會自動在我們編碼的階段,進行快速靈活的靜態代碼分析,自動檢測編譯器和運行時錯誤,並提示開發人員再編譯之前就進行有效的改正和改進。
 
實時檢測功能會在開發過程中當前文件進行檢測,並以高亮的形式提示出來,同時也可以支持Quick Fix,該功能默認開啟。
檢測結果會高亮提示,鼠標放上去會彈出提示信息,按 Alt+Enter鍵可呼出Intention菜單,如:
 
在某些情況下,我們不希望對代碼提示違規信息,比如我們在閱讀Github開源項目代碼的時候,如果界面出現一堆紅色、黃色的提示,此時心里肯定是飄過一萬只草泥馬。這個時候我們可以通過Inspection的設置關閉實時檢測功能。
關閉方式:
  • 通過右鍵快速關閉(打開)所有規則的實時檢測功能
  • 通過 Tools >> Alibaba Coding Guidelines 同樣可以關閉(打開)所有規則的實時檢測功能
  • 通過 Settings >> Editor >> Inspections 進行手動設置,在這里,我們也可以關閉某條規則的實時檢測功能或者修改提示級別。
PS:我覺得里面最惡心的一條規則是:不能在行尾添加注釋! 提示內容:方法內部單行注釋,在被注釋語句上方另起一行,使用//注釋。方法內部多行注釋使用/* */注釋。注意與代碼對齊。
 
注意:修改或關閉某一條約束后可能不會及時生效,可以重啟AS或關閉檢測然后再打開檢測就可以了。
 

代碼掃描(靜態分析,Analyze)

阿里規約插件,除了支持 Inspections 之外,還可以對現有項目進行 靜態代碼分析

可以通過右鍵菜單、Toolbar按鈕、快捷鍵三種方式手動觸發代碼檢測。
  • 在當前編輯的文件中點擊右鍵,可以在彈出的菜單中觸發對該文件的檢測
  • 在左側的Project目錄樹中點擊右鍵,可以觸發對整個工程或者選擇的某個目錄、文件進行檢測
  • 使用快捷鍵(Ctrl+Shift+Alt+J)觸發彈出窗口時,可以選擇檢測范圍
 
它分析的結果,會以 Blocker/Critical/Major 三個級別進行區分。默認按等級分組,方便統計每個級別錯誤的數量:
三個級別的意義:
Blocker(崩潰):阻礙開發或測試工作的問題 Critical(嚴重):系統主要功能部分喪失、數據庫保存調用錯誤、用戶數據丟失 Major(一般):功能沒有完全實現但是不影響使用,功能菜單存在缺陷但不會影響系統穩定性
 
 
默認情況,我們在結果面板需要雙擊具體違規項才能打開對應的源文件,點擊面板中的圖標    開啟 Autoscroll To Source選項后,單擊面板中的文件名、或者是具體的違規項的時候IDEA會自動打開對應的源文件。
對於實現Quick Fix的規則,在結果面板中可以直接一鍵修復(我還沒有發現有支持的規則)。

增強的代碼掃描(Inspect Code)

以上方式只會檢測此插件中定義的規范,而不會檢測 IDEA 中  Inspections 中定義的其他規范,通過下面方式可以達到這個目的:
Analyze菜單 >> 點擊Inspect Code >> 在彈框中設置檢驗范圍和使用的檢驗規則,確認即可
 

代碼提交時檢測

在提交代碼框勾選Alibaba Code Guidelines選項
如果有違反手冊的地方會提示是否繼續提交,選擇取消后會自動對修改的代碼進行掃描
 

CheckStyle-IDEA 插件簡介

這也是一個檢查代碼風 格的插件,可以對比如命名約定,類設計等方面進行代碼規范和風格的檢查
谷歌代碼規范:Google Java Style Guide 
PS:建議使用阿里出的Java代碼規范【Alibaba Java Coding Guidelines】插件,80K下載,大小7.8 M
 
配置:Other Settings -->  CheckStyle  --> 添加規范文件,或勾選推薦的規范文件
 
文檔:
This plugin provides both real-time and on-demand scanning of Java files with CheckStyle from within IDEA.
這個插件可以在IDEA中使用提供的CheckStyle實時和按需掃描Java文件。
 
Once installed, a new inspection will be available in the group 'CheckStyle'. The 'Inspections' item in the preferences panel will allow you to turn this on and to configure it.
安裝完成后,一個新的 inspection 將出現在“CheckStyle”組中。首選項面板中的“Inspections”項目將允許您打開並配置它。
 
Project exceptions are treated a little oddly. Because CheckStyle demands these to be on the current classpath errors will appear if these have not as yet been compiled. Further, because we cache the real-time checkers for performance reasons, real-time scans may continue to show the errors after a compilation. A static scan will force a reload of the Checker and should resolve this.
項目例外有點奇怪。因為CheckStyle要求它們在當前類路徑上,所以如果它們還沒有被編譯的話,錯誤將會出現。此外,由於出於性能原因而緩存實時檢查器,實時掃描可能在編譯后繼續顯示錯誤。靜態掃描將強制重新加載檢查器,並應解決此問題。
 
2017-12-14


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM