下載《阿里巴巴Java開發手冊(詳盡版)1.4.0》 與 碼出高效,碼出質量

下載《阿里巴巴Java開發手冊(詳盡版)1.4.0》

 

地址:

https://yq.aliyun.com/download/2720?utm_content=m_1000019584

 

 



《阿里巴巴Java開發手冊》是阿里內部Java工程師所遵循的開發規範,涵蓋編程規約、單元測試規約、異常日誌規約、MySQL規約、工程規約、安全規約等,這是近萬名阿里Java技術精英的經驗總結,並經歷了多次大規模一線實戰檢驗及完善。這是阿里回饋給Java社區的一份禮物,希望能夠幫助企業開發團隊在Java開發上更高效、容錯、有協作性,提高代碼質量,降低項目維護成本。

 


碼出高效,碼出質量!

相比C++代碼規範業界已經達成共識,Java代碼規範業界比較混亂,我們期待這次發佈的Java代碼規範能夠給業界帶來一個標準,促使整體行業代碼規範水平得到提高,最終能夠幫助企業和開發者提升代碼質量和降低代碼故障率。

 


阿里出品,質量保證!

阿里Java技術團隊一手打造出Dubbo、JStorm、Fastjson等諸多流行開源框架,部分已成爲Apache基金會孵化項目;

阿里在Java後端領域支撐起全球訪問量最大的服務器集羣;

Java代碼構建的阿里雙11業務系統訂單處理能力達到54.4萬筆/秒(2019年);鏈接可查看

通過在阿里雲公共雲上運行阿里核心系統,每秒創建54.4萬個採購訂單,支付寶網購支付的最高峯值達到了每秒6100萬次。鏈接可查看

到目前已累計數十億行高併發、高穩定性的最佳Java代碼實踐;

……

此次公開的Java開發手冊正是出自這樣的團隊,近萬名阿里Java技術精英的經驗總結,並經歷了多次大規模一線實戰檢驗及完善,鑄就了這本高含金量的阿里Java開發手冊。該手冊以Java開發者爲中心視角,劃分爲編程規約、異常日誌規約、MYSQL規約、工程規約、安全規約五大塊,再根據內容特徵,細分成若干二級子目錄。根據約束力強弱和故障敏感性,規約依次分爲強制、推薦、參考三大類。此套規範不僅能讓代碼一目瞭然, 更有助於加強團隊分工與合作、真正提升效率。

 


無規矩不成方圓 無規範不能協作

衆所周知,制訂交通法規表面上是要限制行車權,實際上是保障公衆的人身安全。試想如果沒有限速,沒有紅綠燈,沒有規定靠右行駛,誰還敢上路行駛。

同理,對軟件來說,適當的規範和標準絕不是消滅代碼內容的創造性、優雅性,而是限制過度個性化,以一種普遍認可的方式一起做事,降低故障率,提升協作效率。開發手冊詳細列舉如何開發更加高效,更加容錯,更加有協作性,力求知其然,更知其不然,結合正反例,提高代碼質量。比如,異常日誌處理時的各種不規範行爲;集合轉換的各種坑;創建線程池出現的等待隊列OOM等。

 


阿里技術資深大咖聯袂推薦

阿里高級研究員多隆:工程師對於代碼,一定要“精益求精”,不論從性能,還是簡潔優雅,都要具備“精益求精”的工匠精神,認真打磨自己的作品。

阿里研究員畢玄:一個優秀的工程師和一個普通工程師的區別,不是現在滿天飛的架構圖,他的功底就是體現在他寫的每一行代碼上。

阿里研究員玄難:代碼是軟件工程裏面的產品設計、系統架構設計等工作的最後承載體,代碼的質量決定了一切工作的成敗。

阿里巴巴B2B事業羣CTO李純:好的軟件產品離不開工程師高質量的代碼及相互間順暢的溝通與合作。簡單,適用的代碼規約背後所傳遞的是技術上的追求卓越、協同合作的精神,是每個技術團隊不可缺失的重要利器。

阿里研究員、HipHop作者:趙海平(花名:福貝):程序員是創造個性化作品的藝術家,但同時也是需要團隊合作的工種。個性化應儘量表現在代碼效率和算法方面,犧牲小我,成就大我。

 


擁抱規範,遠離傷害!

團隊開發,是互相傷害?還是互相進步!是項目抱怨?還是項目進度!

 

 

 

 

 

 



 

代碼的可讀性是指代碼讓人容易閱讀、理解、調試、可預料的程度。提高代碼的可讀性可以爲代碼閱讀者節約時間和精力,提升團隊協作效率。熟悉和遵守《阿里巴巴Java開發手冊》的編程風格,那只是“標”,而代碼可讀性的“本”可以追溯到軟件設計階段。根據阿里巴巴內部的反饋聲音來看,對於數據底層結構狀態圖、以及敏捷開發相關的三條,共鳴感最強,那麼詳細點評一下。

 

1. 數據底層結構

底層數據結構屬於大廈的地基工程,如果地基不穩,那麼上層去修正難度是相當大的,甚至是無法修正。所以設計規約提倡,存儲方案和底層數據結構的設計獲得評審一致通過,並沉澱成爲文檔。有缺陷的底層數據結構容易導致系統風險高,可擴展性差,重構成本因歷史數據遷移、系統平滑過渡也會陡然增加,所以,存儲方案和數據結構需要認真地進行設計和評審,生產環境提交執行後,需要進行double check。評審內容包括存儲介質選型、表結構設計能否滿足技術方案、存取性能和存儲空間能否滿足業務發展、表或字段之間的辯證關係、字段名稱、字段類型、索引等;數據結構變更(如在原有表中新增字段)也需要進行評審通過後上線。

 

2. 狀態圖

業務對象狀態相關的編碼錯誤是引起線上故障的一個重要導火索。多一個狀態,少一個狀態,如果沒有歷史設計文檔沉澱,那麼都是災難性的。如果某個業務對象的狀態超過3個,使用狀態圖來表達並且明確狀態變化的各個觸發條件。狀態圖的核心是對象狀態,首先明確對象有多少種狀態,然後明確兩兩狀態之間是否存在直接轉換關係,再明確觸發狀態轉換的條件是什麼。淘寶訂單狀態有已下單、待付款、已付款、待發貨、已發貨、已收貨等。比如已下單與已收貨這兩種狀態之間是不可能有直接轉換關係的。

 

3. 敏捷開發

敏捷開發是當下流行的一種開發模式,相比傳統軟件生產流程,更加快速地交付。但是,敏捷開發適合於信任度好、理解力強、技術水平相對一致的創業型團隊。但是在很多公司敏捷成爲一個抓進度的拔苗助長式的藉口。所以避免如下誤解:敏捷開發 = 講故事 + 編碼 + 發佈。敏捷開發是快速交付迭代可用的系統,省略多餘的設計方案,摒棄傳統的審批流程,但核心關鍵點上的必要設計和文檔沉澱是需要的。

 



 

 

 

對應的IDE插件


Eclipse 安裝 阿里P3C插件

Help >> Install New Software>>  Add... 插件安裝菜單,在安裝插件的地址欄中輸入:https://p3c.alibaba.com/plugin/eclipse/update

確定後,直接勾選下面的Smartfox Eclipse Plugnin,然後一直下一步安裝(中間需要點“I Accept”)

安裝完成後需重啓eclipse,重啓完成後,我們可以看到eclipse任務欄中多了兩個小圖標

當我們安裝完成後,右鍵菜單中會出現“阿里編碼規約掃描”

 


IDEA,選擇Preferences - Plugins - Browse repositories後,在輸入框中輸入"alibaba",可以看到返回結果中有"Alibaba Java Coding Guidelines"。點擊插件詳情中的"install"按鈕,按照其提示即可完成安裝,安裝完成後需重啓IDEA。

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章