一、前言
昨日(10/14)日,阿里巴巴在杭州雲棲大會上,正式釋出了由阿里巴巴 P3C 專案組,經過 247 天的持續研發,正式釋出眾所期待的 《阿里巴巴 Java 開發規約》的掃描外掛!
P3C 是世界知名的反潛機,專門對付水下潛水艇,寓意是掃描出所有潛在的程式碼隱患。這個專案組是阿里巴巴開發愛好者自發組織的虛擬專案組,把《阿里巴巴 Java 開發規約》強制條目轉化自動外掛,並實現部分的自動編碼。
該外掛已經在 Github 上開源,有興趣的可以直接去看看。
或者在Github直接搜尋p3c
二、該外掛的主要功能
該外掛主要是對今年釋出的《阿里巴巴 Java 開發規約》的一個延伸,它以一個 IDE 的外掛存在,可以自動對手冊中的 Java 不規範的問題進行提示。現在主要支援(IDEA、Eclipse),Android Studio 是基於 IDEA 的,所以也是支援 Android 開發人員的。
該外掛在掃描程式碼後,會將不符合規約的程式碼按照 Blocker/Critical/Major 三個等級顯示在下方,甚至在 IDEA 上,還可以基於 Inspection 機制提供了實時檢測的功能,編寫程式碼的同時也能快速發現不規範的程式碼。而對於歷史程式碼,部分規則實現了批量一鍵修復的功能,為首次在成熟專案上,使用外掛,做了非常友善的支援。
三、如何安裝
本著 Android 開發的視角,這裡只介紹如何在 Android Studio 中使用 Alibaba Java Coding Guidelines(以下簡稱阿里規約外掛)。其他工具,請翻閱文件。
3.1 搜尋外掛
依次選擇:Setting >> Plugins >> Browse repositories .
3.2 安裝外掛
搜尋關鍵字『alibaba』,並在結果中,找到 Alibaba Java Coding Guidelines 並安裝。
安裝完成之後,會有提示需要重啟 Android Studio,我們點選 restart 按鈕就可以幫我們自動重啟,當然我們手動重啟也行。
四、如何使用
4.1 切換語言
阿里規約外掛的使用非常的簡單,並且本身外掛就是國人開發完成,所以對中文的支援非常的好。
安裝之後,它會預設使用你當前裝置選擇的語言環境,進行配置語言,當然你也可以自行切換語言,暫時僅支援 中文 和 英語。
你可以在 Tools >> Alibaba Coding Guidelines >> Switch language to Xxx 進行切換。
這裡切換之後,也需要重啟 IDEA 才可以生效。
4.2 Inspections 支援
Inspections 相信大家應該都不陌生,它會自動在我們編碼的階段,進行快速靈活的靜態程式碼分析,自動檢測編譯器和執行時錯誤,並提示開發人員再編譯之前就進行有效的改正和改進。
這裡舉個簡單的例子。
可以看到,它會個我指出我這裡編寫不規範的地方,如果想要檢視更多細節,點選 more 按鈕即可。
當然,所有的規範,都可以再 Inspections 中檢視到。
在 Inspections 中,以 All-Check 區分,以下是它支援的所有檢查,有興趣可以一個個點選檢視細節,右側為檢查出問題之後的提示資訊,如果不想要的檢測條件,還可以將它反選掉。
4.3 程式碼靜態分析
阿里規約外掛,除了支援 Inspections 之外,還可以對現有專案進行靜態程式碼分析。
它分析的結果,會以 Blocker/Critical/Major 三個級別進行區分。最終檢測出來的效果也非常的直觀,如果你是當前外掛語言是中文,基本上一眼就看出來哪裡有問題,並給出了修復建議。
4.4 VCS 支援
Android Stuido 中,預設提供 VCS 支援,我們只需要簡單的配置,就可以支援 Git、SVN 等。
Android Studio 中,配合 Git 使用,不瞭解的可以看看我之前的文章。《工作中,AS和Git更配哦!》
而阿里規約外掛,同時也支援這部分的校驗,它可以在我們提交程式碼之前,對我們本次提交的程式碼進行規約檢測。
這個功能,在我看來還是非常的有用的,符合檢測結果之後,自己程式碼質量和同隊 Code Review 的效率都會提高。
五、規約原始碼
最後說點題外話,簡單看看規約的原始碼是什麼結構。
從結構上來看,不同的外掛分別用不同的專案在維護,這也是毋庸置疑的,本身也不通用。
有趣的是,阿里規約外掛是完全使用 Kotlin 進行開發的。
可以看到,結構也非常的清晰,對 inspection 的支援,在 compatible/inspection 和 inspection 中,VCS 的支援,在 vcs 中。
細節我們就不多看了,有興趣就去閱讀原始碼吧。
小結
阿里規約外掛,外掛的主要情況,本文已經講解清楚了。
但是它主要還是基於之前釋出的 《阿里巴巴 Java 開發手冊 終極版》,建議還是提前閱讀一下本文件,可以在承香墨影中回覆『阿里規約』,即可檢視完整的文件。
今天在承香墨影公眾號的後臺,回覆『成長』。我會送你一些我整理的學習資料,包含:Android反編譯、演算法。Web專案原始碼。
推薦閱讀:
點贊或者分享吧~