前言html
對於Java代碼規範,業界有統一的標準,很多公司對此都有必定的要求。可是即使如此,龐大的Java使用者因爲經驗很水平的限制,未必有規範編碼的意識,並且即使經驗豐富的老Java程序員也沒法作到時刻將規範牢記於心。因此對於代碼規範掃描工具,一經問世就廣受青睞,阿里巴巴出品的Alibaba Java Coding Guidelines(阿里巴巴Java代碼規約掃描,如下簡稱爲AJCG)插件即是其中之一。與不少其它流行的同類工具(如FindBugs,Lint等)相比,它更專一於Java代碼規範,並且默認採用中文,對於英文沒那麼好的開發者而言,這無疑是一種福利。本文將結合Android Studio(如下簡稱AS),介紹一下該插件的使用。程序員
1、AJCG簡介ide
爲了讓開發者更加方便、而且達到快速規範代碼格式的目的並實行起來,阿里巴巴基於《阿里巴巴Java開發規約》手冊內容,研發了一套自動化的IDE檢測插件,它就是Alibaba Java Coding Guidelines 插件。2017年10月14日杭州雲棲大會,AJCG全球首發儀式正式啓動,規範正式以插件形式公開走向業界,引領Java語言的規範之路。該插件在掃描代碼後,將不符合規約的代碼按Blocker/Critical/Major三個等級顯示出來,而且大部分能夠自動修復。它還基於Inspection機制提供了實時檢測功能,編寫代碼的同時也能快速發現問題所在。工具
2、在AS中安裝AJCG插件post
與其它的插件同樣,AJCG插件也提供了直接在AS的倉庫中安裝和手動離線安裝兩種方式。性能
一、直接從AS的插件庫下載安裝ui
至於如何在AS插件庫中安裝插件,在個人另一篇介紹FindBugs的文章【http://www.javashuo.com/article/p-tqxvbbgf-cq.html】中已經介紹過了,這裏就不贅述了。簡單說一下就是編碼
File > Settings > Plugins > Browse repositories 搜索 「Alibaba Java Coding Guidelines」,按照提示進行安裝,而後重啓便可。插件
二、手動下載並從磁盤安裝代碼規範
請從以下地址獲取離線安裝包:
連接:https://pan.baidu.com/s/19MPJ-CVfZvf4K_PVXY8g6Q
提取碼:it10
3、使用AJCG
一、啓動AJCG掃描
大體能夠經過以下兩種方式啓動AJCG進行掃描(好像還有別的啓動方式,我們知道這兩種方式就夠了):
(1)能夠Tools > 阿里編碼規約 > 編碼規約掃描
(2)在編輯界面或者AS左邊的項目區域點擊右鍵,在右鍵菜單中選擇「編碼規約掃描」便可。
二、菜單功能
第一種啓動方式比第二張多一項功能,這三項列表功能以下:
(1)編碼規約掃描:開始掃描代碼。
(2)打開/關閉實時檢測功能:實時檢測代碼,顧名思義,對代碼進行實時檢測。通常機器性能比較好的話能夠開啓這項功能,若是已經開啓,這裏會顯示「關閉實時檢測功能」。
(3)切換語言至英文:中英文切換。
三、執行結果
掃描完成後顯示結果以下(若是當前鼠標點擊的是最終項,右邊區域顯示的是其它的內容,後面會再講到):
四、指定區域搜索同一類問題
當點擊③處的按鈕時,會彈出以下按鈕:
這裏選擇掃描區域,來掃描鼠標選中的同類問題。若是按照默認選擇,那麼運行後的結果就是:
這裏咱們能夠看到,顯示了整個Project中的全部該類的問題。
五、預覽具體的不規範代碼
在第3點的執行結果中,若是點擊的是最終的問題點或者問題所在的類文件,那顯示的就是以下界面,預覽該處不規範的代碼。
4、工具欄功能介紹
工具欄的這些功能常常會用到,這裏簡單對每個功能簡單介紹一下:
(1)Rerun Inspection: 從新運行一次掃描
(2)Close:關閉真個AJCG面板
(3)Expand All:展開結果的樹狀結構,整個結果是樹狀結構的。
(4)Collapse All:收起結果的樹狀結構
(5)Go Pre Problem:選擇上一個問題
(6)Go Next Problem:選擇下一個問題
(7)Help:幫助
(8)Group by Serverity:(不知道如何描述)
(9)Group by derectory:按目錄分組/按類名分組間切換
(10)Filter resoled items:過濾掉已經解決的項
(11)Autoscroll to Source:自動滾動到源碼
(12)Export:導出,能夠導出爲XML和HTML兩種格式
(13)Edit Settings:編輯設置
5、掃描結果
該部分區域顯示了執行結果,因爲是設置的中文版,因此這裏顯示的都是中文,這看起來很是爽。
咱們能夠看到Blocker(阻擋者)、Critical(嚴重問題)、Major(主要的)三個大類,他們表示的是問題的嚴重程度,嚴重程度由高到低爲:Blocker > Critical > Major。至於每一類中都會包含什麼樣的問題,圖中的中文已經說明了一切,這裏就不贅述了。
福利
這提供一份《阿里巴巴Java開發手冊(記念版)》電子文檔
連接:https://pan.baidu.com/s/1z2u1ITJGJvgsJqrgq_AYwQ
提取碼:v9ja
結語
本文只介紹了AJCG常見的一些使用方法,必定還有不少很牛的功能,但願讀者們多多探索,多多交流,共同進步,謝謝!