在寫代碼時,你對變量的命名都是按照什麼規則?

朝陽日暮

我之前也在別的回答裡面提過《阿里巴巴Java開發手冊》,大家可以在網上搜索一下,很容易就能下載到,建議大家都閱讀一下。

我們現在開發的時候也是參考這個開發手冊,變量的命名規範也在裡面有提到。


整體內容


舉幾個例子


一般的命名規範我就不復制粘貼了,找幾個不常見的特殊說明一下:


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

正例: localValue / getHttpMessage() / inputUserId

補充說明:變量名使用駝峰格式的時候,有一些ORM框架在做數據庫字段和VO中的變量名對照的時候,會自動轉成下劃線,比如localValue對應數據庫的列名為local_value,當然這個是可以做配置的。


  • 類名使用 UpperCamelCase 風格,必須遵從駝峰形式,但以下情形例外:(領域模型的相關命名)DO/BO/DTO/VO等。

比如:UserVO,而不是UserVo。

補充說明:還要注意一點,POJO是DO/BO/DTO/VO的統稱,不能命名成 xxxPOJO。


  • POJO 類中布爾類型的變量,都不要加 is,否則部分框架解析會引起序列化錯誤。

補充說明:對於isSuccess這個布爾變量,IDE在自動生成setter/getter方法的時候,生成的是isSuccess()和setSuccess(),而不是isIsSuccess()和setIsSuccess()。

RPC框架反向解析會有問題。

SpringMVC解析成為POJO對象的時候,也會解析不到setIsSuccess()方法,而且不報錯,默默地設置成False。



更多規範,請下載閱讀開發手冊。

希望我的回答能夠幫助到你!


會點代碼的大叔

關於命名,我覺得可以參考阿里巴巴開發手冊,雖說怎樣命名都可以,但是在一個統一的約束下,簡潔高效的命名,可以減少許多溝通以及維護的成本。我說下幾點比較強調的。

1.嚴禁中英文混合命名! 代碼中的命名嚴禁使用拼音與英文混合的方式。

2.不允許直接使用中文命名的方式。

3.方法名、參數名、成員變量、局部變量都統一使用駝峰命名法!駝峰形式是最為直觀高效的形式!正例:lowerCamelCase,getHttpMessage()等

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

5.關於類名,則

5.1抽象類命名使用 Abstract 或 Base 開頭 ;

5.2 異常類命名使用 Exception 結尾 ;

5.3 測試類命名以它要測試的類的名稱開始,以 Test 結尾。

6.杜絕完全不規範的縮寫,避免望文不知義。男人,寧願長點也不省事點!

7.建議在類名中體現出具體模式。說明:將設計模式體現在名字中,有利於閱讀者快速理解架構設計思想。

正例: public class OrderFactory;

public class LoginProxy;

public class ResourceObserver;等

8.枚舉類名建議帶上 Enum 後綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開。簡潔高效無毒無副作用!

9.各層命名規約:

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 。




分享到:


相關文章: