Java代碼規範之編程規約

一、命名風格

  1. 代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束
  2. 所有編程相關的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式
  3. 類名使用UpperCamelCase風格,但以下情形例外:DO / BO / DTO / VO / AO / PO / UID等
  4. 方法名、參數名、成員變量、局部變量都統一使用lowerCamelCase風格
  5. 常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長
  6. 抽象類命名使用Abstract或Base開頭;異常類命名使用Exception結尾;測試類命名以它要測試的類的名稱開始,以Test結尾
  7. 類型與中括號緊挨相連來表示數組
  8. POJO類中的任何布爾類型的變量,都不要加is前綴,否則部分框架解析會引起序列化錯誤
  9. 包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用單數形式,但是類名如果有複數含義,類名可以使用複數形式
  10. 避免在子父類的成員變量之間、或者不同代碼塊的局部變量之間採用完全相同的命名,使可讀性降低
  11. 杜絕完全不規範的縮寫,避免望文不知義
  12. 爲了達到代碼自解釋的目標,任何自定義編程元素在命名時,使用盡量完整的單詞組合來表達
  13. 在常量與變量的命名時,表示類型的名詞放在詞尾,以提升辨識度
  14. 如果模塊、接口、類、方法使用了設計模式,在命名時需體現出具體模式
  15. 接口類中的方法和屬性不要加任何修飾符號(public 也不要加),保持代碼的簡潔性,並加上有效的Javadoc註釋。儘量不要在接口裏定義變量,如果一定要定義變量,確定與接口方法相關,並且是整個應用的基礎常量
  16. 接口和實現類的命名有兩套規則
  17. 枚舉類名帶上Enum後綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開
  18. 各層命名規約:
    A) Service/DAO層方法命名規約
      1) 獲取單個對象的方法用get做前綴
      2) 獲取單個對象的方法用get做前綴
      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

二、定義常量

  1. 不允許任何魔法值(即未經預先定義的常量)直接出現在代碼中
  2. 在long或者Long賦值時,數值後使用大寫的L,不能是小寫的l,小寫容易跟數字混淆,造成誤解
  3. 不要使用一個常量類維護所有常量,要按常量功能進行歸類,分開維護
  4. 常量的複用層次有五層:跨應用共享常量、應用內共享常量、子工程內共享常量、包內共享常量、類內共享常量。
      1) 跨應用共享常量:放置在二方庫中,通常是client.jar中的constant目錄下。
       2) 應用內共享常量:放置在一方庫中,通常是子模塊中的constant目錄下。
       3) 子工程內部共享常量:即在當前子工程的constant目錄下。
       4) 包內共享常量:即在當前包下單獨的constant目錄下。
       5) 類內共享常量:直接在類內部private static final定義。
  5. 如果變量值僅在一個固定範圍內變化用enum類型來定義。
    轉自GitHub《阿里巴巴Java開發手冊(泰山版)》,鏈接:https://github.com/alibaba/p3c
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章