《碼出高效:Java開發手冊》背後的故事

weixin_33766168發表於2019-01-07

2018年12月22日,由博文視點組織的《碼出高效:Java開發手冊》作者見面會暨籤售儀式在北京舉行,InfoQ對書籍作者孤盡(楊冠寶)、鳴莎(高海慧)進行了採訪,瞭解了此書出版背後的一些細節。

《碼出高效:Java開發手冊》由電子工業出版社於2018年10月份首次出版發行。本書結合一線的開發實踐以及JDK中的設計理念,是面向初學者的Java學習指南,也是Java編碼的最佳實踐。同時,它也是之前阿里釋出的《Java開發手冊》中程式碼規約的來龍去脈的一個全面梳理,解釋規約是怎麼來的。

225fbf05add13cf24dd72983e0f9e47a.jpeg

《碼出高效》最早在2018年9月杭州雲棲大會上宣佈,包括馬雲、行癲、魯肅都為該書寫了推薦,該書的編委會包括畢玄、索尼、多隆等阿里的技術高管,也對該書的問世起了大力推動作用。指南2017年初,阿里釋出《阿里巴巴Java開發手冊》,首次公開阿里官方Java程式碼規範標準。手冊涵蓋程式設計規約、單元測試規約、異常日誌規約、MySQL規約、工程規約、安全規約等,這是近萬名阿里Java技術精英的經驗總結,並經歷了多次大規模一線實戰檢驗及完善。同時阿里也釋出了開源的Java規約IDE外掛p3c,以幫助企業和個人使用規約。

Java開發手冊的作者孤盡是阿里集團程式碼中心的負責人,在阿里歷任技術研發、架構師、部門主管等不同角色,承擔過雙十一、國際化、程式碼中心等大型專案,在大資料、高併發、分散式、程式碼效能等領域均有較深造詣。書籍合作作者鳴莎是阿里雲資深開發工程師,先後在阿里集團B2B技術部和阿里雲任職,承擔過商業化、雙十一、智慧排程及10億/天的資訊採集系統建設等大型專案。

據孤盡介紹,阿里集團目前的程式碼量十分龐大,所有程式碼加起來容量達到35TB。阿里將程式碼視為最重要的數字資產之一,每次投資併購後做的第一件時間就是拿到對方的程式碼。如此龐大的程式碼庫,離不開流程和標準的制定,但Java社群裡並沒有一份比較全面的,能適合阿里集團使用的程式碼規範,於是集團決定打造自己的Java規約並在全集團內推廣,這就是Java開發手冊誕生的背景。

阿里在Java領域鑽研很深,不僅使用Java開發的全球訪問量最大的伺服器叢集,還推出了自己的AliJVM,釋出瞭如Dubbo、JStorm、fastjson等Java開源專案,最近還連續兩年獲得JCP委員會席位,在國際Java社群的影響力也日漸擴大,阿里將規約對外公佈,也可視為對Java社群的回饋。自規約公佈併發布英文版本後,也得到了國外開發者的讚譽。

目前,阿里Java規約已經在社群得到廣泛的應用,據孤盡介紹,規約p3c外掛在外部下載量超過56萬,並且已有一些大公司採用。在阿里內部,規約已經覆蓋菜鳥、螞蟻金服,成為整個阿里經濟體規範,p3c外掛已經覆蓋了90%的Java團隊,日活超過40%,累計掃描出的潛在錯誤高達1億個。

不過,程式碼規範的推廣並不容易,即使是在阿里內部。因為有些團隊有自己的規範,在不同規範之間切換需要成本,而切換之後對其本身在短期內很難看到明顯的收益。最終,這個規範還是在集團的技術高層的強力推動下執行下去了,現在阿里招進的Java新人,在培訓的時候第一課就是學習規約。阿里還打造了配合規約的認證考試,不僅集團內部要考,還對外部開放了。

在書籍的最後,孤盡提到,要在團隊內部推廣規範,需要做到三點:

  • 立法透明:規約的每一條應該儘量由團隊討論得出,達成共識,規約還要根據技術的發展而變化;
  • 執法堅定:需要用強有力的約束來保證規約得到遵守,也要通過軟性的文化建設來培養對程式碼質量的重視;
  • 組織支援:規約是一個管理決定,在推進過程中經常遇到各種牴觸和困難,需要組織堅定推進的決心,給予許可權和資源等方面的支援。

在9月份的雲棲大會上釋出《碼出高效》書籍的時候,團隊還宣佈書籍的收入將全部捐獻給公益專案,資助殘障人士學習程式設計。孤盡等也希望這本書能幫助到更多喜歡程式設計的人,促進Java生態的健康發展。

相關文章