《码出高效:Java开发手册》背后的故事
2018年12月22日,由博文視點(diǎn)組織的《碼出高效:Java開發(fā)手冊》作者見面會(huì)暨簽售儀式在北京舉行,InfoQ對(duì)書籍作者孤盡(楊冠寶)、鳴莎(高海慧)進(jìn)行了采訪,了解了此書出版背后的一些細(xì)節(jié)。
《碼出高效:Java開發(fā)手冊》由電子工業(yè)出版社于2018年10月份首次出版發(fā)行。本書結(jié)合一線的開發(fā)實(shí)踐以及JDK中的設(shè)計(jì)理念,是面向初學(xué)者的Java學(xué)習(xí)指南,也是Java編碼的最佳實(shí)踐。同時(shí),它也是之前阿里發(fā)布的《Java開發(fā)手冊》中代碼規(guī)約的來龍去脈的一個(gè)全面梳理,解釋規(guī)約是怎么來的。
《碼出高效》最早在2018年9月杭州云棲大會(huì)上宣布,包括馬云、行癲、魯肅都為該書寫了推薦,該書的編委會(huì)包括畢玄、索尼、多隆等阿里的技術(shù)高管,也對(duì)該書的問世起了大力推動(dòng)作用。指南2017年初,阿里發(fā)布《阿里巴巴Java開發(fā)手冊》,首次公開阿里官方Java代碼規(guī)范標(biāo)準(zhǔn)。手冊涵蓋編程規(guī)約、單元測試規(guī)約、異常日志規(guī)約、MySQL規(guī)約、工程規(guī)約、安全規(guī)約等,這是近萬名阿里Java技術(shù)精英的經(jīng)驗(yàn)總結(jié),并經(jīng)歷了多次大規(guī)模一線實(shí)戰(zhàn)檢驗(yàn)及完善。同時(shí)阿里也發(fā)布了開源的Java規(guī)約IDE插件p3c,以幫助企業(yè)和個(gè)人使用規(guī)約。
Java開發(fā)手冊的作者孤盡是阿里集團(tuán)代碼中心的負(fù)責(zé)人,在阿里歷任技術(shù)研發(fā)、架構(gòu)師、部門主管等不同角色,承擔(dān)過雙十一、國際化、代碼中心等大型項(xiàng)目,在大數(shù)據(jù)、高并發(fā)、分布式、代碼效能等領(lǐng)域均有較深造詣。書籍合作作者鳴莎是阿里云資深開發(fā)工程師,先后在阿里集團(tuán)B2B技術(shù)部和阿里云任職,承擔(dān)過商業(yè)化、雙十一、智能調(diào)度及10億/天的信息采集系統(tǒng)建設(shè)等大型項(xiàng)目。
據(jù)孤盡介紹,阿里集團(tuán)目前的代碼量十分龐大,所有代碼加起來容量達(dá)到35TB。阿里將代碼視為最重要的數(shù)字資產(chǎn)之一,每次投資并購后做的第一件時(shí)間就是拿到對(duì)方的代碼。如此龐大的代碼庫,離不開流程和標(biāo)準(zhǔn)的制定,但Java社區(qū)里并沒有一份比較全面的,能適合阿里集團(tuán)使用的代碼規(guī)范,于是集團(tuán)決定打造自己的Java規(guī)約并在全集團(tuán)內(nèi)推廣,這就是Java開發(fā)手冊誕生的背景。
阿里在Java領(lǐng)域鉆研很深,不僅使用Java開發(fā)的全球訪問量最大的服務(wù)器集群,還推出了自己的AliJVM,發(fā)布了如Dubbo、JStorm、fastjson等Java開源項(xiàng)目,最近還連續(xù)兩年獲得JCP委員會(huì)席位,在國際Java社區(qū)的影響力也日漸擴(kuò)大,阿里將規(guī)約對(duì)外公布,也可視為對(duì)Java社區(qū)的回饋。自規(guī)約公布并發(fā)布英文版本后,也得到了國外開發(fā)者的贊譽(yù)。
目前,阿里Java規(guī)約已經(jīng)在社區(qū)得到廣泛的應(yīng)用,據(jù)孤盡介紹,規(guī)約p3c插件在外部下載量超過56萬,并且已有一些大公司采用。在阿里內(nèi)部,規(guī)約已經(jīng)覆蓋菜鳥、螞蟻金服,成為整個(gè)阿里經(jīng)濟(jì)體規(guī)范,p3c插件已經(jīng)覆蓋了90%的Java團(tuán)隊(duì),日活超過40%,累計(jì)掃描出的潛在錯(cuò)誤高達(dá)1億個(gè)。
不過,代碼規(guī)范的推廣并不容易,即使是在阿里內(nèi)部。因?yàn)橛行﹫F(tuán)隊(duì)有自己的規(guī)范,在不同規(guī)范之間切換需要成本,而切換之后對(duì)其本身在短期內(nèi)很難看到明顯的收益。最終,這個(gè)規(guī)范還是在集團(tuán)的技術(shù)高層的強(qiáng)力推動(dòng)下執(zhí)行下去了,現(xiàn)在阿里招進(jìn)的Java新人,在培訓(xùn)的時(shí)候第一課就是學(xué)習(xí)規(guī)約。阿里還打造了配合規(guī)約的認(rèn)證考試,不僅集團(tuán)內(nèi)部要考,還對(duì)外部開放了。
在書籍的最后,孤盡提到,要在團(tuán)隊(duì)內(nèi)部推廣規(guī)范,需要做到三點(diǎn):
- 立法透明:規(guī)約的每一條應(yīng)該盡量由團(tuán)隊(duì)討論得出,達(dá)成共識(shí),規(guī)約還要根據(jù)技術(shù)的發(fā)展而變化;
- 執(zhí)法堅(jiān)定:需要用強(qiáng)有力的約束來保證規(guī)約得到遵守,也要通過軟性的文化建設(shè)來培養(yǎng)對(duì)代碼質(zhì)量的重視;
- 組織支持:規(guī)約是一個(gè)管理決定,在推進(jìn)過程中經(jīng)常遇到各種抵觸和困難,需要組織堅(jiān)定推進(jìn)的決心,給予權(quán)限和資源等方面的支持。
在9月份的云棲大會(huì)上發(fā)布《碼出高效》書籍的時(shí)候,團(tuán)隊(duì)還宣布書籍的收入將全部捐獻(xiàn)給公益項(xiàng)目,資助殘障人士學(xué)習(xí)編程。孤盡等也希望這本書能幫助到更多喜歡編程的人,促進(jìn)Java生態(tài)的健康發(fā)展。
總結(jié)
以上是生活随笔為你收集整理的《码出高效:Java开发手册》背后的故事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 水文-接口和抽象类有什么不同
- 下一篇: 小技巧:让linux程序在后台运行