日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

阿里Java开发规范记录(一)

發布時間:2023/10/11 综合教程 86 老码农
生活随笔 收集整理的這篇文章主要介紹了 阿里Java开发规范记录(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

    近日,從網上下載了阿里云棲社區發布的《阿里巴巴Java開發手冊(正式版)》v1.1.0版。從編程以來,一直苦于沒有相關的、全面的、靠譜的規范可以參考,有了這手冊,日后編程也算是找到了依據。瞧,人家阿里都是按照這規則來操作的!

云棲社區此舉對于普通Java開發者來說,算是功德無量,在一定程度上規范了Java開發者的編程習慣。為后來者謀福利了。

  這本手冊一共分為五個部分,包括了編程規約、異常日志、MySQL規約、工程規約、安全規約。基本上從編碼的各個方面都細細的理了一遍,感覺完全可以當做是公司招人的面試題,用來考較對方的編碼習慣,甚至也能在一定程度上能推斷出對方的編碼水平,畢竟高的編碼水平,其編碼習慣肯定不會差到哪去。

手冊的內容約束分為三種級別,分別為強制、推薦、參考。強制,即必須遵從的編碼規范;推薦,則表示最好遵從該規范,有利于提高代碼水平;參考,則表示需要了解即可。

花了一個上午,仔細地將這篇手冊閱讀了一番,結果只看了編程規約這部分,從中摘錄了一些規約,我覺得日后在編碼過程中需要注意及提升的地方。

命名規約

              【強制】抽象類命名使用 Abstract 或 Base 開頭; 異常類命名使用 Exception 結尾; 測試類命名以它要測試的類的名稱開始,以 Test 結尾。 
               點評:一直以來對于命名都比較隨意,尤其是面對很長的類名及方法名時都會自己進行單詞簡化,時間久了,連自己都會忘記這個縮寫到底是個什么意思,o(╯□╰)o。另外,這些類名的命名規則也能遵守,只是這些標識詞語總是有時放開頭有時放結尾,缺少些統一性。
 
       【強制】 POJO 類中布爾類型的變量,都不要加 is,否則部分框架解析會引起序列化錯誤。 
                點評:可能因為開發的項目少,使用的框架不夠豐富,這個問題倒是從來沒遇到過。當然也基本上沒這么寫過。
 
       【參考】各層命名規約:
A) Service/DAO 層方法命名規約
1) 獲取單個對象的方法用 get 做前綴。
2) 獲取多個對象的方法用 list 做前綴。
3) 獲取統計值的方法用 count 做前綴。
4) 插入的方法用 save(推薦) 或 insert 做前綴。
5) 刪除的方法用 remove(推薦) 或 delete 做前綴。
6) 修改的方法用 update 做前綴。
B) 領域模型命名規約
1) 數據對象: xxxDO, xxx 即為數據表名。
2) 數據傳輸對象: xxxDTO, xxx 為業務領域相關的名稱。
3) 展示對象: xxxVO, xxx 一般為網頁名稱。
4) POJO 是 DO/DTO/BO/VO 的統稱,禁止命名成 xxxPOJO。 

點評:因為公司人來人往的緣故,對方法的命名從來都是自己按照自己的那套玩。就我個人習慣而言,只要是獲取對象全部都是get做前綴,阿里的這種做法的確可以用來參考參考。

OOP規約

                 【強制】 POJO 類必須寫 toString 方法。使用 IDE 的中工具: source> generate toString時,如果繼承了另一個 POJO 類,注意在前面加一下 super.toString。

說明: 在方法執行拋出異常時,可以直接調用 POJO 的 toString()方法打印其屬性值,便于排查問題。

         點評:這個提議非常好。如其所言,有利于排查問題。
 
         【強制】泛型通配符<? extends T>來接收返回的數據,此寫法的泛型集合不能使用 add 方法, 而<? super T>不能使用 get 方法,做為接口調用賦值時易出錯。

說明: 擴展說一下 PECS(Producer Extends Consumer Super)原則: 1) 頻繁往外讀取內容的,適合用上界 Extends。 2) 經常往里插入的,適合用下界 Super。

         點評:泛型經常用。但是,泛型通配符卻基本上沒怎么用過。看了一下PECS原則,很有意思。如果熟練掌握的話,可以在某些特定場景中提升代碼的質量。   
 
         【強制】不要在 foreach 循環里進行元素的 remove/add 操作。 remove 元素請使用 Iterator方式,如果并發操作,需要對 Iterator 對象加鎖。 
          點評:這個問題我在開發中遇到過。不過,在處理這個問題時有些笨拙。對于并發操作,我使用的是并發隊列ConcurrentLinkedQueue。
 
              
             

總結

以上是生活随笔為你收集整理的阿里Java开发规范记录(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。