阿里釋出的規約外掛,細節都在這裡!!!

承香墨影發表於2017-10-15

一、前言

昨日(10/14)日,阿里巴巴在杭州雲棲大會上,正式釋出了由阿里巴巴 P3C 專案組,經過 247 天的持續研發,正式釋出眾所期待的 《阿里巴巴 Java 開發規約》的掃描外掛!

P3C 是世界知名的反潛機,專門對付水下潛水艇,寓意是掃描出所有潛在的程式碼隱患。這個專案組是阿里巴巴開發愛好者自發組織的虛擬專案組,把《阿里巴巴 Java 開發規約》強制條目轉化自動外掛,並實現部分的自動編碼。

該外掛已經在 Github 上開源,有興趣的可以直接去看看。

github.com/alibaba/p3c

或者在Github直接搜尋p3c

二、該外掛的主要功能

/WechatIMG57.jpeg
/WechatIMG57.jpeg

該外掛主要是對今年釋出的《阿里巴巴 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 .

install_1.png
install_1.png

3.2 安裝外掛

搜尋關鍵字『alibaba』,並在結果中,找到 Alibaba Java Coding Guidelines 並安裝。

/install-plugin.png
/install-plugin.png

安裝完成之後,會有提示需要重啟 Android Studio,我們點選 restart 按鈕就可以幫我們自動重啟,當然我們手動重啟也行。

四、如何使用

4.1 切換語言

阿里規約外掛的使用非常的簡單,並且本身外掛就是國人開發完成,所以對中文的支援非常的好。

安裝之後,它會預設使用你當前裝置選擇的語言環境,進行配置語言,當然你也可以自行切換語言,暫時僅支援 中文 和 英語。

你可以在 Tools >> Alibaba Coding Guidelines >> Switch language to Xxx 進行切換。

switch-language
switch-language

這裡切換之後,也需要重啟 IDEA 才可以生效。

/smartfox-restart.png
/smartfox-restart.png

4.2 Inspections 支援

Inspections 相信大家應該都不陌生,它會自動在我們編碼的階段,進行快速靈活的靜態程式碼分析,自動檢測編譯器和執行時錯誤,並提示開發人員再編譯之前就進行有效的改正和改進。

這裡舉個簡單的例子。

/thread-factory-wraning.png
/thread-factory-wraning.png

可以看到,它會個我指出我這裡編寫不規範的地方,如果想要檢視更多細節,點選 more 按鈕即可。

/wraning-more.png
/wraning-more.png

當然,所有的規範,都可以再 Inspections 中檢視到。

/insp-dialog.png
/insp-dialog.png

在 Inspections 中,以 All-Check 區分,以下是它支援的所有檢查,有興趣可以一個個點選檢視細節,右側為檢查出問題之後的提示資訊,如果不想要的檢測條件,還可以將它反選掉。

4.3 程式碼靜態分析

阿里規約外掛,除了支援 Inspections 之外,還可以對現有專案進行靜態程式碼分析。

/code-any.png
/code-any.png

它分析的結果,會以 Blocker/Critical/Major 三個級別進行區分。最終檢測出來的效果也非常的直觀,如果你是當前外掛語言是中文,基本上一眼就看出來哪裡有問題,並給出了修復建議。

/code-result.png
/code-result.png

4.4 VCS 支援

Android Stuido 中,預設提供 VCS 支援,我們只需要簡單的配置,就可以支援 Git、SVN 等。

Android Studio 中,配合 Git 使用,不瞭解的可以看看我之前的文章。《工作中,AS和Git更配哦!

而阿里規約外掛,同時也支援這部分的校驗,它可以在我們提交程式碼之前,對我們本次提交的程式碼進行規約檢測。

/analyze_before_checkin.png
/analyze_before_checkin.png

這個功能,在我看來還是非常的有用的,符合檢測結果之後,自己程式碼質量和同隊 Code Review 的效率都會提高。

五、規約原始碼

最後說點題外話,簡單看看規約的原始碼是什麼結構。

/project.png
/project.png

從結構上來看,不同的外掛分別用不同的專案在維護,這也是毋庸置疑的,本身也不通用。

有趣的是,阿里規約外掛是完全使用 Kotlin 進行開發的。

/idea-plugin.png
/idea-plugin.png

可以看到,結構也非常的清晰,對 inspection 的支援,在 compatible/inspection 和 inspection 中,VCS 的支援,在 vcs 中。

細節我們就不多看了,有興趣就去閱讀原始碼吧。

小結

阿里規約外掛,外掛的主要情況,本文已經講解清楚了。

但是它主要還是基於之前釋出的 《阿里巴巴 Java 開發手冊 終極版》,建議還是提前閱讀一下本文件,可以在承香墨影中回覆『阿里規約』,即可檢視完整的文件。

今天在承香墨影公眾號的後臺,回覆『成長』。我會送你一些我整理的學習資料,包含:Android反編譯、演算法。Web專案原始碼。

推薦閱讀:

點贊或者分享吧~

相關文章