開發筆記1|Java程式碼規約清單

銀時發表於2018-10-17

第1條 | 程式碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結束

第2條 | 程式碼中的命名嚴禁使用拼音與英文混合的方式,更不允許直接使用中文的方式

第3條 | 類名使用 UpperCamelCase 風格,必須遵從駝峰形式,但以下情形例外: DO / BO / DTO / VO / AO

第4條 | 方法名、引數名、成員變數、區域性變數都統一使用lowerCamelCase風格,必須遵從駝峰形式

第5條 | 常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整

第6條 | 抽象類命名使用Abstract或Base開頭;異常類命名使用Exception結尾;測試類命名以它要測試的類名開始,以Test結尾

第7條 | 型別與中括號緊挨相連來定義陣列

第8條 | POJO類中布林型別的變數,都不要加is字首,否則部分框架解析會引起序列化錯誤

第9條 | 包名統一使用小寫,點分隔符之間有且僅有一個自然語義的英語單詞。包名統一使用單數形式,但是類名如果有複數含義,類名可以使用複數形式

第10條 | 杜絕完全不規範的縮寫,避免望文不知義。
反例:AbstractClass“縮寫”命名成AbsClass;condition“縮寫”命名成 condi,此類隨意縮寫嚴重降低了程式碼的可閱讀性。

第11條 | 為了達到程式碼自解釋的目標,任何自定義程式設計元素在命名時,使用盡量完整的單片語合來表達其意。

第12條 | 如果模組、介面、類、方法使用了設計模式,在命名時體現出具體模式。

第13條 | 介面類中的方法和屬性不要加任何修飾符號(public 也不要加),保持程式碼的簡潔性,並加上有效的Javadoc註釋。儘量不要在介面裡定義變數,如果一定要定義變數,肯定是與介面方法相關,並且是整個應用的基礎常量。

介面和實現類的命名有兩套規則:

第14條 | 對於Service和DAO類,基於SOA的理念,暴露出來的服務一定是介面,內部的實現類用Impl的字尾與介面區別

第15條 | 如果是形容能力的介面名稱,取對應的形容詞為介面名(通常是–able的形式)

第16條 | 列舉類名建議帶上Enum字尾,列舉成員名稱需要全大寫,單詞間用下劃線隔開。

第17條 | 各層命名規約:
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。


說明:
內容摘自《阿里巴巴 Java 開發手冊》,版權歸手冊出品團隊所有。本文作者根據自己過往的編碼經驗,對其做一些學習紀要。免費獲取規約PDF

程式碼檢查外掛:免費獲取外掛


相關文章