1. 程式人生 > >阿里巴巴Java開發手冊以及ECPLISE,IDEA外掛

阿里巴巴Java開發手冊以及ECPLISE,IDEA外掛

自從2月9日《阿里巴巴Java開發手冊》面向業界公佈以來,大家一直期待著靜態化掃描工具的問世,在《手冊》終極版釋出時,我們曾經承諾將在2017杭州雲棲大會上進行規約外掛的全球釋出。如今信守承諾,我們如約而至。

經過247天的研發,阿里巴巴於10月14日上午9:00在杭州雲棲大會《研發效能峰會》上,正式釋出《阿里巴巴Java開發手冊》掃描外掛。阿里巴巴高年級同學畢玄、玄難、索尼、葉渡,淘寶程式碼第一人多隆、程式碼規約作者孤盡攜手《手冊》專案組其他同學,以及業界規約生態代表等重磅大咖聯合釋出阿里巴巴程式碼規約外掛!此刻,我們正式地通知全世界開發同學:外掛可以下載啦!體驗令人激動的自動化、智慧化的外掛協同工作,你們值得擁有!

程式碼規約外掛全球釋出現場

dd73e2125df25d232b200b2d62cfe990b4a6aeaa

c76ab5fc4f97f594b7079f120d82acbb054346bd

f14c3201d857e77aed7dba70ad684f38483589e8

外掛是什麼?

不知不覺《手冊》問世半年多了,經過7個版本的迭代,釋出了PDF終極版,相信很多人對其中的規則也有了一定的瞭解,很多人甚至希望能儘快在自己的團隊推行起來,這樣大家有了一套共同的開發準則。但是,如何更好的去遵守規則並且按照手冊去開發我們的系統確變得不那麼容易,為了讓開發者更加方便、快速的將規範推動並實行起來,阿里巴巴基於手冊內容,研發了一套自動化的IDE檢測外掛(IDEA、Eclipse), 該外掛在掃描程式碼後,將不符合《手冊》的程式碼按Blocker/Critical/Major三個等級顯示在下方,甚至在IDEA上,我們還基於Inspection機制提供了實時檢測功能,編寫程式碼的同時也能快速發現問題所在。對於歷史程式碼,部分規則實現了批量一鍵修復的功能,如此爽心悅目的功能是不是很值得擁有?提升程式碼質量,提高團隊研發效能,外掛將會一路同行。

IDEA外掛安裝

IDEA版的外掛我們釋出到了IDEA官方倉庫中(最低支援版本14.1.7,JDK1.7+),只需開啟 Settings >> Plugins >> Browse repositories 輸入 Alibaba 搜尋一下便可以看到對應外掛了,點選安裝等待安裝完成。

至於如何使用請大家到官方[Github倉庫](https://github.com/alibaba/p3c)中進行檢視。

IDEA會自動檢測外掛新版,並提示出來,所以大家不用擔心外掛的更新問題。

Eclipse外掛安裝

Eclipse版外掛支援4.2(Juno,JDK1.8+)及以上版本,我們提供自主的Update Site,通過 Help >> Install New Software 然後輸入https://p3c.alibaba.com/plugin/eclipse/update 即可看到安裝列表。

大家可以通過 Help >> Check for Udates 進行外掛新版檢測。

外掛雖然已經開源,我們的阿里巴巴P3C專案組會長期維護外掛的更新與維護,希望更多的人蔘與進來,除了發現和解決已實現的檢測規則以外,能夠實現更多的規則,讓外掛變得更加完善並且幫助到更多的開發者。

在使用過程中,有任何問題或建議,歡迎與程式碼規約作者孤盡聯絡,也歡迎加入P3C專案組,一起打造具有全球競爭力,效率/質量最優的一站式研發/運維/測試平臺。郵件申請:[email protected] 

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

 《阿里巴巴 Java 開發手冊》細節描述:孤盡

《阿里巴巴 Java 開發手冊》主要是面向 Java 開發群體, Java 做為面嚮物件語言,在業界的生命力還是非常強大的,技術生態豐富,框架結構成熟,經歷了超高併發的“雙十一”實戰考驗,阿里想把多年的 Java 技術積累回饋給 Java 開發者社群。在裡面可以找到很多的技術規範、最佳實踐,避坑指南等。

其中引入了資料庫、安全、伺服器等知識。現代軟體行業的高速發展對於開發者的綜合素質要求越來越高,因為不僅是程式設計知識,其它維度的知識結構也會影響到軟體的最終交付質量。比如:資料庫的表結構和索引設計缺陷可能帶來軟體上的架構缺陷或效能風險;工程結構混亂導致維護困難;沒有鑑權的漏洞程式碼被黑客攻擊等等。

《阿里巴巴 Java 開發手冊》劃分為程式設計規約、異常日誌規約、單元測試、 MySQL 規約、工程規約、安全規約六大塊。那麼衍生的問題是為什麼我們提到的這些看似與編碼毫無關係的內容?有人提問,僅安全規約如果擴充套件開來可以是上百頁的資料,不知道寫在其中的意義何在?其實,主要關注的是與開發緊密相關的知識點,試問一個不知道水平許可權校驗的 Java 開發者,會是一個合格的程式設計師嗎?這本手冊不是提倡大家深究所有的知識點而成為安全專家、運維專家,而是關注在編碼相關的生態知識上。

約束力等級為何是三級?《阿里巴巴 Java 開發手冊》根據約束力強弱及故障敏感性,規約依次分為強制、推薦、參考三大類。強制是一種指令型的,是協作的 Gap,或是故障的痛點;而推薦,希望這樣做是一件好事,大家都這樣做,結構更清晰,協作更高效,但是不這樣做也不會死。而參考分成兩種情況:第一種是無法用程式碼量化的描述,提倡什麼什麼樣的做法,如索引的建立索引時,寧濫勿缺的錯誤做法;第二種是真心覺得或左或右都可以,只是有傾向於一種,這個自由度由開發者自己把握。

擴充套件的說明、正例、反例用來表達什麼?如果只是冷冰冰的條目,對於閱讀者理解成本和記憶成本都是很大的挑戰,《阿里巴巴 Java 開發手冊》希望閱讀者能夠非常舒心地看完整個文件,掩卷遐思,亦有所得。具體來說,“說明”是對內容做了引申和解釋,為求知其然;“正例”提倡什麼樣的編碼和實現方式,推薦做法的其中之一;“反例”說明需要提防的雷區,以及真實的錯誤案例,讓人知其不然。