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