1. 程式人生 > >alibaba-Java開發手冊心得-一編程規約-1命名風格

alibaba-Java開發手冊心得-一編程規約-1命名風格

tor abs 形容詞 通用 架構設計 test arc 單詞 快速

1.【強制】不能以 _ $開始 或結束

2.【強制】嚴禁使用 拼音和英文混合,或中文。即使是純拼音也要避免使用。除非是國際通用的例如taobao youku 等。

3.【強制】類名 必須遵從駝峰形式UpperCamelCase,除了DO/BO/DTO/VO/AO.

正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion

反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion

4. 【強制】方法名、參數名、成員變量、局部變量 都統一使用lowerCamelCase風格,必須遵從駝峰形式。

正例: localValue / getHttpMessage() / inputUserId

5. 【強制】常量命名全部大寫,單詞間用下劃線隔開,力求語義表達完整清楚,不要嫌名字長

正例: MAX_STOCK_COUNT

反例: MAX_COUNT

6. 【強制】抽象類命名使用Abstract或Base開頭;異常類命名使用Exception結尾;測試類命名以它要測試的類的名稱開始,以Test結尾。

7. 【強制】中括號是數組類型的一部分,數組定義如下:String[] args; 反例:使用String args[]的方式來定義。

8. 【強制】POJO類中布爾類型的變量,都不要加is,否則部分框架解析會引起序列化錯誤

反例:定義為基本數據類型Boolean isDeleted;的屬性,它的方法也是isDeleted(),RPC
框架在反向解析的時候,“以為”對應的屬性名稱是deleted,導致屬性獲取不到,進而拋出異常。

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

正例: 應用工具類包名為com.alibaba.open.util、類名為MessageUtils(此規則參考spring的框架結構)

10. 【強制】杜絕完全不規範的縮寫,避免望文不知義。

反例: AbstractClass“縮寫”命名成AbsClass;condition“縮寫”命名成 condi,此類隨意縮寫嚴重降低了代碼的可閱讀性。

11. 【推薦】如果使用到了設計模式,建議在類名中體現出具體模式。 說明:將設計模式體現在名字中,有利於閱讀者快速理解架構設計思想。

正例:public class OrderFactory; public class LoginProxy; public class ResourceObserver;

12. 【推薦】接口類中的方法和屬性不要加任何修飾符號(public 也不要加),保持代碼的簡潔性,並加上有效的Javadoc註釋。盡量不要在接口裏定義變量,如果一定要定義變量,肯定是與接口方法相關,並且是整個應用的基礎常量。

正例:接口方法簽名:void f(); 接口基礎常量表示:String COMPANY = "alibaba";

反例:接口方法定義:public abstract void f(); 說明:JDK8中接口允許有默認實現,那麽這個default方法,是對所有實現類都有價值的默認實現。

13. 接口和實現類的命名有兩套規則: 1)【強制】對於Service和DAO類,基於SOA的理念,暴露出來的服務一定是接口,內部的實現類用Impl的後綴與接口區別。 正例:CacheServiceImpl實現CacheService接口。 2) 【推薦】 如果是形容能力的接口名稱,取對應的形容詞做接口名(通常是–able的形式)。 正例:AbstractTranslator實現 Translatable。

alibaba-Java開發手冊心得-一編程規約-1命名風格