
<b></b>
<b>引言:</b>自從2月9日《阿裡巴巴Java開發手冊》面向業界公布以來,大家一直期待着靜态化掃描工具的問世,在《手冊》終極版釋出時,我們曾經承諾将在2017杭州雲栖大會上進行規約插件的全球釋出。如今信守承諾,我們如約而至。
經過247天的研發,阿裡巴巴于10月14日上午9:00在杭州雲栖大會《研發效能峰會》上,正式釋出《阿裡巴巴Java開發手冊》掃描插件。阿裡巴巴高年級同學畢玄、玄難、索尼、葉渡,淘寶代碼第一人多隆、代碼規約作者孤盡攜手《手冊》項目組其他同學,以及業界規約生态代表等重磅大咖聯合釋出阿裡巴巴代碼規約插件!此刻,我們正式地通知全世界開發同學:插件可以下載下傳啦!體驗令人激動的自動化、智能化的插件協同工作,你們值得擁有!
<b> </b>
<b>代碼規約插件全球釋出現場</b>
<b>插件是什麼?</b>
不知不覺《手冊》問世半年多了,經過7個版本的疊代,釋出了PDF終極版,相信很多人對其中的規則也有了一定的了解,很多人甚至希望能盡快在自己的團隊推行起來,這樣大家有了一套共同的開發準則。但是,如何更好的去遵守規則并且按照手冊去開發我們的系統确變得不那麼容易,為了讓開發者更加友善、快速的将規範推動并實行起來,阿裡巴巴基于手冊内容,研發了一套自動化的IDE檢測插件(IDEA、Eclipse), 該插件在掃描代碼後,将不符合《手冊》的代碼按Blocker/Critical/Major三個等級顯示在下方,甚至在IDEA上,我們還基于Inspection機制提供了實時檢測功能,編寫代碼的同時也能快速發現問題所在。對于曆史代碼,部分規則實作了批量一鍵修複的功能,如此爽心悅目的功能是不是很值得擁有?提升代碼品質,提高團隊研發效能,插件将會一路同行。
<b>IDEA</b><b>插件安裝</b>
IDEA版的插件我們釋出到了IDEA官方倉庫中(最低支援版本14.1.7,JDK1.7+),隻需打開 Settings >> Plugins >>
Browse repositories 輸入 Alibaba 搜尋一下便可以看到對應插件了,點選安裝等待安裝完成。
至于如何使用請大家到官方[Github倉庫](https://github.com/alibaba/p3c)中進行檢視。
IDEA會自動檢測插件新版,并提示出來,是以大家不用擔心插件的更新問題。
<b>Eclipse</b><b>插件安裝</b>
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開發手冊》強制條目轉化成自動化插件,并實作部分的自動程式設計。
<b>《阿裡巴巴 Java 開發手冊》細節</b><b>描述:孤盡</b>
《阿裡巴巴 Java 開發手冊》主要是面向 Java 開發群體, Java 做為面向對象語言,在業界的生命力還是非常強大的,技術生态豐富,架構結構成熟,經曆了超高并發的“雙十一”實戰考驗,阿裡想把多年的 Java 技術積累回饋給 Java 開發者社群。在裡面可以找到很多的技術規範、最佳實踐,避坑指南等。
其中引入了資料庫、安全、伺服器等知識。現代軟體行業的高速發展對于開發者的綜合素質要求越來越高,因為不僅是程式設計知識,其它次元的知識結構也會影響到軟體的最終傳遞品質。比如:資料庫的表結構和索引設計缺陷可能帶來軟體上的架構缺陷或性能風險;工程結構混亂導緻維護困難;沒有鑒權的漏洞代碼被黑客攻擊等等。
<b>《阿裡巴巴 Java 開發手冊》劃分為程式設計規約、異常日志規約、單元測試、 MySQL 規約、工程規約、安全規約六大塊。</b>那麼衍生的問題是為什麼我們提到的這些看似與編碼毫無關系的内容?有人提問,僅安全規約如果擴充開來可以是上百頁的資料,不知道寫在其中的意義何在?其實,主要關注的是與開發緊密相關的知識點,試問一個不知道水準權限校驗的 Java 開發者,會是一個合格的程式員嗎?這本手冊不是提倡大家深究所有的知識點而成為安全專家、運維專家,而是關注在編碼相關的生态知識上。
限制力等級為何是三級?《阿裡巴巴 Java 開發手冊》根據限制力強弱及故障敏感性,規約依次分為強制、推薦、參考三大類。強制是一種指令型的,是協作的 Gap,或是故障的痛點;而推薦,希望這樣做是一件好事,大家都這樣做,結構更清晰,協作更高效,但是不這樣做也不會死。而參考分成兩種情況:第一種是無法用代碼量化的描述,提倡什麼什麼樣的做法,如索引的建立索引時,甯濫勿缺的錯誤做法;第二種是真心覺得或左或右都可以,隻是有傾向于一種,這個自由度由開發者自己把握。
擴充的說明、正例、反例用來表達什麼?如果隻是冷冰冰的條目,對于閱讀者了解成本和記憶成本都是很大的挑戰,《阿裡巴巴 Java 開發手冊》希望閱讀者能夠非常舒心地看完整個文檔,掩卷遐思,亦有所得。具體來說,“說明”是對内容做了引申和解釋,為求知其然;“正例”提倡什麼樣的編碼和實作方式,推薦做法的其中之一;“反例”說明需要提防的雷區,以及真實的錯誤案例,讓人知其不然。