下载《阿里巴巴Java开发手册(详尽版)1.4.0》 与 码出高效,码出质量
下載《阿里巴巴Java開發(fā)手冊(cè)(詳盡版)1.4.0》
?
地址:
https://yq.aliyun.com/download/2720?utm_content=m_1000019584
?
?
《阿里巴巴Java開發(fā)手冊(cè)》是阿里內(nèi)部Java工程師所遵循的開發(fā)規(guī)范,涵蓋編程規(guī)約、單元測(cè)試規(guī)約、異常日志規(guī)約、MySQL規(guī)約、工程規(guī)約、安全規(guī)約等,這是近萬(wàn)名阿里Java技術(shù)精英的經(jīng)驗(yàn)總結(jié),并經(jīng)歷了多次大規(guī)模一線實(shí)戰(zhàn)檢驗(yàn)及完善。這是阿里回饋給Java社區(qū)的一份禮物,希望能夠幫助企業(yè)開發(fā)團(tuán)隊(duì)在Java開發(fā)上更高效、容錯(cuò)、有協(xié)作性,提高代碼質(zhì)量,降低項(xiàng)目維護(hù)成本。
?
碼出高效,碼出質(zhì)量!
相比C++代碼規(guī)范業(yè)界已經(jīng)達(dá)成共識(shí),Java代碼規(guī)范業(yè)界比較混亂,我們期待這次發(fā)布的Java代碼規(guī)范能夠給業(yè)界帶來一個(gè)標(biāo)準(zhǔn),促使整體行業(yè)代碼規(guī)范水平得到提高,最終能夠幫助企業(yè)和開發(fā)者提升代碼質(zhì)量和降低代碼故障率。
?
阿里出品,質(zhì)量保證!
阿里Java技術(shù)團(tuán)隊(duì)一手打造出Dubbo、JStorm、Fastjson等諸多流行開源框架,部分已成為Apache基金會(huì)孵化項(xiàng)目;
阿里在Java后端領(lǐng)域支撐起全球訪問量最大的服務(wù)器集群;
Java代碼構(gòu)建的阿里雙11業(yè)務(wù)系統(tǒng)訂單處理能力達(dá)到54.4萬(wàn)筆/秒(2019年);鏈接可查看
通過在阿里云公共云上運(yùn)行阿里核心系統(tǒng),每秒創(chuàng)建54.4萬(wàn)個(gè)采購(gòu)訂單,支付寶網(wǎng)購(gòu)支付的最高峰值達(dá)到了每秒6100萬(wàn)次。鏈接可查看
到目前已累計(jì)數(shù)十億行高并發(fā)、高穩(wěn)定性的最佳Java代碼實(shí)踐;
……
此次公開的Java開發(fā)手冊(cè)正是出自這樣的團(tuán)隊(duì),近萬(wàn)名阿里Java技術(shù)精英的經(jīng)驗(yàn)總結(jié),并經(jīng)歷了多次大規(guī)模一線實(shí)戰(zhàn)檢驗(yàn)及完善,鑄就了這本高含金量的阿里Java開發(fā)手冊(cè)。該手冊(cè)以Java開發(fā)者為中心視角,劃分為編程規(guī)約、異常日志規(guī)約、MYSQL規(guī)約、工程規(guī)約、安全規(guī)約五大塊,再根據(jù)內(nèi)容特征,細(xì)分成若干二級(jí)子目錄。根據(jù)約束力強(qiáng)弱和故障敏感性,規(guī)約依次分為強(qiáng)制、推薦、參考三大類。此套規(guī)范不僅能讓代碼一目了然, 更有助于加強(qiáng)團(tuán)隊(duì)分工與合作、真正提升效率。
?
無(wú)規(guī)矩不成方圓 無(wú)規(guī)范不能協(xié)作
眾所周知,制訂交通法規(guī)表面上是要限制行車權(quán),實(shí)際上是保障公眾的人身安全。試想如果沒有限速,沒有紅綠燈,沒有規(guī)定靠右行駛,誰(shuí)還敢上路行駛。
同理,對(duì)軟件來說,適當(dāng)?shù)囊?guī)范和標(biāo)準(zhǔn)絕不是消滅代碼內(nèi)容的創(chuàng)造性、優(yōu)雅性,而是限制過度個(gè)性化,以一種普遍認(rèn)可的方式一起做事,降低故障率,提升協(xié)作效率。開發(fā)手冊(cè)詳細(xì)列舉如何開發(fā)更加高效,更加容錯(cuò),更加有協(xié)作性,力求知其然,更知其不然,結(jié)合正反例,提高代碼質(zhì)量。比如,異常日志處理時(shí)的各種不規(guī)范行為;集合轉(zhuǎn)換的各種坑;創(chuàng)建線程池出現(xiàn)的等待隊(duì)列OOM等。
?
阿里技術(shù)資深大咖聯(lián)袂推薦
阿里高級(jí)研究員多隆:工程師對(duì)于代碼,一定要“精益求精”,不論從性能,還是簡(jiǎn)潔優(yōu)雅,都要具備“精益求精”的工匠精神,認(rèn)真打磨自己的作品。
阿里研究員畢玄:一個(gè)優(yōu)秀的工程師和一個(gè)普通工程師的區(qū)別,不是現(xiàn)在滿天飛的架構(gòu)圖,他的功底就是體現(xiàn)在他寫的每一行代碼上。
阿里研究員玄難:代碼是軟件工程里面的產(chǎn)品設(shè)計(jì)、系統(tǒng)架構(gòu)設(shè)計(jì)等工作的最后承載體,代碼的質(zhì)量決定了一切工作的成敗。
阿里巴巴B2B事業(yè)群CTO李純:好的軟件產(chǎn)品離不開工程師高質(zhì)量的代碼及相互間順暢的溝通與合作。簡(jiǎn)單,適用的代碼規(guī)約背后所傳遞的是技術(shù)上的追求卓越、協(xié)同合作的精神,是每個(gè)技術(shù)團(tuán)隊(duì)不可缺失的重要利器。
阿里研究員、HipHop作者:趙海平(花名:福貝):程序員是創(chuàng)造個(gè)性化作品的藝術(shù)家,但同時(shí)也是需要團(tuán)隊(duì)合作的工種。個(gè)性化應(yīng)盡量表現(xiàn)在代碼效率和算法方面,犧牲小我,成就大我。
?
擁抱規(guī)范,遠(yuǎn)離傷害!
團(tuán)隊(duì)開發(fā),是互相傷害?還是互相進(jìn)步!是項(xiàng)目抱怨?還是項(xiàng)目進(jìn)度!
?
?
?
?
?
?
?
代碼的可讀性是指代碼讓人容易閱讀、理解、調(diào)試、可預(yù)料的程度。提高代碼的可讀性可以為代碼閱讀者節(jié)約時(shí)間和精力,提升團(tuán)隊(duì)協(xié)作效率。熟悉和遵守《阿里巴巴Java開發(fā)手冊(cè)》的編程風(fēng)格,那只是“標(biāo)”,而代碼可讀性的“本”可以追溯到軟件設(shè)計(jì)階段。根據(jù)阿里巴巴內(nèi)部的反饋聲音來看,對(duì)于數(shù)據(jù)底層結(jié)構(gòu)、狀態(tài)圖、以及敏捷開發(fā)相關(guān)的三條,共鳴感最強(qiáng),那么詳細(xì)點(diǎn)評(píng)一下。
?
1. 數(shù)據(jù)底層結(jié)構(gòu)
底層數(shù)據(jù)結(jié)構(gòu)屬于大廈的地基工程,如果地基不穩(wěn),那么上層去修正難度是相當(dāng)大的,甚至是無(wú)法修正。所以設(shè)計(jì)規(guī)約提倡,存儲(chǔ)方案和底層數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)獲得評(píng)審一致通過,并沉淀成為文檔。有缺陷的底層數(shù)據(jù)結(jié)構(gòu)容易導(dǎo)致系統(tǒng)風(fēng)險(xiǎn)高,可擴(kuò)展性差,重構(gòu)成本因歷史數(shù)據(jù)遷移、系統(tǒng)平滑過渡也會(huì)陡然增加,所以,存儲(chǔ)方案和數(shù)據(jù)結(jié)構(gòu)需要認(rèn)真地進(jìn)行設(shè)計(jì)和評(píng)審,生產(chǎn)環(huán)境提交執(zhí)行后,需要進(jìn)行double check。評(píng)審內(nèi)容包括存儲(chǔ)介質(zhì)選型、表結(jié)構(gòu)設(shè)計(jì)能否滿足技術(shù)方案、存取性能和存儲(chǔ)空間能否滿足業(yè)務(wù)發(fā)展、表或字段之間的辯證關(guān)系、字段名稱、字段類型、索引等;數(shù)據(jù)結(jié)構(gòu)變更(如在原有表中新增字段)也需要進(jìn)行評(píng)審?fù)ㄟ^后上線。
?
2. 狀態(tài)圖
業(yè)務(wù)對(duì)象狀態(tài)相關(guān)的編碼錯(cuò)誤是引起線上故障的一個(gè)重要導(dǎo)火索。多一個(gè)狀態(tài),少一個(gè)狀態(tài),如果沒有歷史設(shè)計(jì)文檔沉淀,那么都是災(zāi)難性的。如果某個(gè)業(yè)務(wù)對(duì)象的狀態(tài)超過3個(gè),使用狀態(tài)圖來表達(dá)并且明確狀態(tài)變化的各個(gè)觸發(fā)條件。狀態(tài)圖的核心是對(duì)象狀態(tài),首先明確對(duì)象有多少種狀態(tài),然后明確兩兩狀態(tài)之間是否存在直接轉(zhuǎn)換關(guān)系,再明確觸發(fā)狀態(tài)轉(zhuǎn)換的條件是什么。淘寶訂單狀態(tài)有已下單、待付款、已付款、待發(fā)貨、已發(fā)貨、已收貨等。比如已下單與已收貨這兩種狀態(tài)之間是不可能有直接轉(zhuǎn)換關(guān)系的。
?
3. 敏捷開發(fā)
敏捷開發(fā)是當(dāng)下流行的一種開發(fā)模式,相比傳統(tǒng)軟件生產(chǎn)流程,更加快速地交付。但是,敏捷開發(fā)適合于信任度好、理解力強(qiáng)、技術(shù)水平相對(duì)一致的創(chuàng)業(yè)型團(tuán)隊(duì)。但是在很多公司敏捷成為一個(gè)抓進(jìn)度的拔苗助長(zhǎng)式的借口。所以避免如下誤解:敏捷開發(fā) = 講故事 + 編碼 + 發(fā)布。敏捷開發(fā)是快速交付迭代可用的系統(tǒng),省略多余的設(shè)計(jì)方案,摒棄傳統(tǒng)的審批流程,但核心關(guān)鍵點(diǎn)上的必要設(shè)計(jì)和文檔沉淀是需要的。
?
?
?
?
對(duì)應(yīng)的IDE插件
Eclipse 安裝 阿里P3C插件
Help >> Install New Software>>? Add... 插件安裝菜單,在安裝插件的地址欄中輸入:https://p3c.alibaba.com/plugin/eclipse/update
確定后,直接勾選下面的Smartfox Eclipse Plugnin,然后一直下一步安裝(中間需要點(diǎn)“I Accept”)
安裝完成后需重啟eclipse,重啟完成后,我們可以看到eclipse任務(wù)欄中多了兩個(gè)小圖標(biāo)
當(dāng)我們安裝完成后,右鍵菜單中會(huì)出現(xiàn)“阿里編碼規(guī)約掃描”
?
IDEA,選擇Preferences - Plugins - Browse repositories后,在輸入框中輸入"alibaba",可以看到返回結(jié)果中有"Alibaba Java Coding Guidelines"。點(diǎn)擊插件詳情中的"install"按鈕,按照其提示即可完成安裝,安裝完成后需重啟IDEA。
?
?
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的下载《阿里巴巴Java开发手册(详尽版)1.4.0》 与 码出高效,码出质量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 标记一下 两个Google Chrome
- 下一篇: oracle table 函数使用