《碼出高效:Java開發手冊》背後的故事
2018年12月22日,由博文視點組織的《碼出高效:Java開發手冊》作者見面會暨籤售儀式在北京舉行,InfoQ對書籍作者孤盡(楊冠寶)、鳴莎(高海慧)進行了採訪,瞭解了此書出版背後的一些細節。
《碼出高效:Java開發手冊》由電子工業出版社於2018年10月份首次出版發行。本書結合一線的開發實踐以及JDK中的設計理念,是面向初學者的Java學習指南,也是Java編碼的最佳實踐。同時,它也是之前阿里釋出的《Java開發手冊》中程式碼規約的來龍去脈的一個全面梳理,解釋規約是怎麼來的。
《碼出高效》最早在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生態的健康發展。
相關文章
- 你不知道的《阿里巴巴Java開發手冊》背後故事阿里Java
- 《碼處高效:Java開發手冊》之程式碼風格Java
- dyld背後的故事&原始碼分析原始碼
- 從心出發:indieprize 3款原創精品遊戲背後的開發故事遊戲
- 《阿里巴巴 Java開發手冊》讀後感阿里Java
- 更好的 java 重試框架 sisyphus 背後的故事Java框架
- Redis持久化背後的故事Redis持久化
- 開源筆記軟體 Joplin 背後的故事筆記
- 阿里Java開發手冊思考(三)阿里Java
- 阿里Java開發手冊思考(二)阿里Java
- 阿里Java開發手冊思考(一)阿里Java
- 阿里巴巴Java開發手冊阿里Java
- RestCloud ETL 社群版背後的故事RESTCloud
- GCC編譯器背後的故事GC編譯
- 愛回收IPO背後的新老故事
- 歷時四年的暗黑風手遊順利上線,帶你瞭解開發背後的故事
- Java開發手冊精華總結Java
- 郭超:阿里雲Cassandra背後的故事阿里
- Spring Cloud Alibaba 開源背後的故事 | 開源中國專訪SpringCloud
- 和 .project 檔案說“再見”—— VS Code Java 1.1.0 背後的故事ProjectJava
- 阿里巴巴java開發手冊筆記阿里Java筆記
- 阿里巴巴Java開發規範手冊阿里Java
- 併發程式背後的故事以及併發當中的記憶體模型記憶體模型
- 安能物流 All in TiDB 背後的故事與成果TiDB
- 嵌入式—編譯器背後的故事編譯
- 請求 www.baidu.com 背後的故事AI
- 蘋果自動駕駛背後的故事蘋果自動駕駛
- 誰來背鍋?自動駕駛車禍背後的故事自動駕駛
- 聊聊百度搜尋背後的故事
- 編譯器背後的故事(入門練習)編譯
- 4399《胡偵探傳說》系列背後的故事
- 【前端軼事】Chrome 小恐龍背後的故事前端Chrome
- 騰訊與Github的魔幻會面背後的故事…Github
- 為什麼阿里巴巴Java開發手冊中不允許魔法值出現在程式碼中?阿里Java
- 天刀手游上線,團隊講述背後的武俠江湖故事創作
- 小天才手錶背後的故事:杉巖超融合資料庫最佳實踐資料庫
- 杉巖:小天才手錶背後的故事,超融合資料庫最佳實踐資料庫
- 唯品會Java開發手冊》1.0.2版閱讀Java