阿里發布的規約插件,細節都在這里!!!


一、前言

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

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

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

https://github.com/alibaba/p3c

或者在Github直接搜索p3c

二、該插件的主要功能

/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

3.2 安裝插件

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

/install-plugin.png

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

四、如何使用

4.1 切換語言

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

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

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

switch-language

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

/smartfox-restart.png

4.2 Inspections 支持

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

這里舉個簡單的例子。

/thread-factory-wraning.png

可以看到,它會個我指出我這里編寫不規范的地方,如果想要查看更多細節,點擊 more 按鈕即可。

/wraning-more.png

當然,所有的規范,都可以再 Inspections 中查看到。

/insp-dialog.png

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

4.3 代碼靜態分析

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

/code-any.png

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

/code-result.png

4.4 VCS 支持

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

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

而阿里規約插件,同時也支持這部分的校驗,它可以在我們提交代碼之前,對我們本次提交的代碼進行規約檢測。

/analyze_before_checkin.png

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

五、規約源碼

最后說點題外話,簡單看看規約的源碼是什么結構。

/project.png

從結構上來看,不同的插件分別用不同的項目在維護,這也是毋庸置疑的,本身也不通用。

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

/idea-plugin.png

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

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

小結

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

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

今天在承香墨影公眾號的后台,回復『成長』。我會送你一些我整理的學習資料,包含:Android反編譯、算法。Web項目源碼。

推薦閱讀:

點贊或者分享吧~


免責聲明!

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



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