天天看點

【Java七天學習訓練營】Day6

泰山版Java開發手冊

《Java開發手冊》始于阿裡内部規約,在全球 Java 開發者共同努力下,已成為業界普遍遵循的開發規範。今年是手冊上線第四年,推出全新泰山版免費下載下傳,涵蓋三大更新亮點,直接下載下傳一睹為快:

Java七天學習訓練營Day6

Java七天學習訓練營是由泰山版《Java開發手冊》的作者親自出題,每天學習一個知識點,寫一份小作業,幫助你不僅是閱讀,更能透徹了解泰山版《Java開發手冊》的重要知識。

活動時間:5月15日截止送出完成打卡的同學名單

完成七天打卡挑戰的少俠即有機會獲得精美的阿裡雲開發者社群周邊禮品,包含阿裡雲ET公仔、超大社群滑鼠墊、衛衣、背包等等。

提示:每天需要從 進入,按照下方圖示點選才算打卡成功哦!

【Java七天學習訓練營】Day6

獎品說明:

同學們擷取獎品的順序,以阿裡妹收到同學完成打卡後填寫的表單序号為主。

第1名和第100、200、300等100的倍數打卡的同學送一個阿裡雲ET公仔(限量10個)

第10、20、30名等10的倍數打卡的同學送一張超大滑鼠墊(限量50個)

第6名、第66名、第666名(以此類推)打卡同學送一個阿裡雲雙肩包

第8名、第88名、第888名(以此類推)打卡的同學送一件阿裡雲定制衛衣

第1000名打卡的同學送上一個機械鍵盤!

除此之外,打卡完成編号是質數的同學可以獲得一份筆記本+貼紙的紀念品(限量30份)

(部分獎品展示)

【Java七天學習訓練營】Day6

阿裡雲ET公仔

【Java七天學習訓練營】Day6

超大開發者社群滑鼠墊

【Java七天學習訓練營】Day6

阿裡雲定制雙肩包

今日學習内容:二方庫規約

閱讀前需了解:

1.每日學習的知識點都節選自泰山版《Java開發手冊》,如想完整閱讀電子書的所有内容,請到專題頁下載下傳。

2. 根據限制力強弱,規約依次分為強制、推薦、參考三大類:

【強制】必須遵守。是不得不遵守的約定,違反本約定或将會引起嚴重的後果。

【推薦】盡量遵守。長期遵守這樣的規定,有助于系統穩定性和合作效率的提升。

【參考】充分了解。技術意識的引導,是個人學習、團隊溝通、項目合作的方向。

1. 【強制】定義GAV遵從以下規則:

 1) GroupID格式:com.{公司/BU }.業務線.[子業務線],最多4級。

說明:{公司/BU} 例如:alipay/taobao/tmall/aliexpress等BU一級;子業務線可選。

 2) ArtifactID格式:産品線名-子產品名。語義不重複不遺漏,先到倉庫中心去查證一下。

正例:tc-client / uic-api / tair-tool

 3) Version:詳細規定參考下方。

2. 【強制】二方庫版本号命名方式:主版本号.次版本号.修訂号

 1) 主版本号:産品方向改變,或者大規模API不相容,或者架構不相容更新。

 2) 次版本号:保持相對相容性,增加主要功能特性,影響範圍極小的API不相容修改。

 3) 修訂号:保持完全相容性,修複BUG、新增次要功能特性等。

反例:倉庫内某二方庫版本号從1.0.0.0開始,一直默默“更新”成1.0.0.64,完全失去版本的語義資訊。

說明:任何中間件、中台業務、二方包都必須遵守此版本約定。起始版本号統一為:1.0.0,而不是0.0.1

3. 【強制】二方庫定制包的命名方式,在上一條規定的版本号之後加“-英文說明[序号]”,英文說明可以是部門簡稱、業務名稱,序号直接緊跟在英文說明之後,表示此定制包的順序号。

說明:TDDL給SCM定制的版本号:1.0.0-SCM1。注:請盡可能在應用端來解決類沖突和加載問題,避免随意釋出此類定制包。

4. 【強制】線上應用不要依賴SNAPSHOT版本(安全包除外);正式釋出的類庫必須先去中央倉庫進行查證,使RELEASE版本号有延續性,且版本号不允許覆寫更新。

說明:不依賴SNAPSHOT版本是保證應用釋出的幂等性。另外,也可以加快編譯時的打包建構。

5. 【強制】二方庫的新增或更新,保持除功能點之外的其它jar包仲裁結果不變。如果有改變,必須明确評估和驗證,可使用jar包二進制相容性檢查工具。

說明:在更新時,進行dependency:resolve前後資訊比對,如果仲裁結果完全不一緻,那麼通過dependency:tree指令,找出差異點,進行排除jar包;

反例:2014年,因二方庫更新導緻的P2以上故障數在統計榜上排名第一,大家需要高度重視。

6. 【強制】二方庫裡可以定義枚舉類型,參數可以使用枚舉類型,但是接口傳回值不允許使用枚舉類型或者包含枚舉類型的POJO對象。

說明:由于更新原因,導緻雙方的枚舉類不盡相同,在接口解析,類反序列化時出現異常。

今日作業

關于錯誤碼定義與使用,你有什麼好的實踐?

同學們請把作業寫在評論區裡,如果出現了優秀作業,将再給該同學送出額外的禮品!

上期答案

正确的做法是a、b

c的錯誤原因:要保證資訊的透明,上下遊業務系統都可能會受到影響,他們也要有相應的處理措施

d的錯誤原因:actions做完後,必須驗證通過,防止下次再次發生

點選下方圖檔回到Java開發手冊專題頁
【Java七天學習訓練營】Day6

阿裡妹溫馨提示:恭喜你完成了第六天的學習打卡!建議收藏專題頁,每天記得上線打卡哦。隻有連續七天堅持打卡,才有機會領取到獎品!