程式設計規約之常量定義

2021-09-11 07:18:34 字數 1139 閱讀 8316

(二)常量定義 

1. 【強制】不允許任何魔法值(即未經預先定義的常量)直接出現在**中。

反例:string key = "id#taobao_" + tradeid;

cache.put(key, value);

2. 【強制】在 long 或者 long 賦值時,數值後使用大寫的 l,不能是小寫的 l,小寫容易跟數字

1 混淆,造成誤解。

說明:long a = 2l; 寫的是數字的 21,還是 long 型的 2?

3. 【推薦】不要使用乙個常量類維護所有常量,要按常量功能進行歸類,分開維護。

說明:大而全的常量類,雜亂無章,使用查詢功能才能定位到修改的常量,不利於理解和維護。

正例:快取相關常量放在類 cacheconsts 下;系統配置相關常量放在類 configconsts 下。

4. 【推薦】常量的復用層次有五層:跨應用共享常量、應用內共享常量、子工程內共享常量、包

內共享常量、類內共享常量。

1) 跨應用共享常量:放置在二方庫中,通常是 client.jar 中的 constant 目錄下。

2) 應用內共享常量:放置在一方庫中,通常是子模組中的 constant 目錄下。

反例:易懂變數也要統一定義成應用內共享常量,兩位攻城師在兩個類中分別定義了表示

「是」的變數:

類 a 中:public static final string yes = "yes";

類 b 中:public static final string yes = "y";

a.yes.equals(b.yes),預期是 true,但實際返回為 false,導致線上問題。

3) 子工程內部共享常量:即在當前子工程的 constant 目錄下。

4) 包內共享常量:即在當前包下單獨的 constant 目錄下。

5) 類內共享常量:直接在類內部 private static final 定義。

5. 【推薦】如果變數值僅在乙個固定範圍內變化用 enum 型別來定義。

說明:如果存在名稱之外的延伸屬性應使用 enum 型別,下面正例中的數字就是延伸資訊,表

示一年中的第幾個季節。

正例:

public enum seasonenum 

}

2 2 程式設計規約 常量定義

1 強制 不允許任何 魔法值 即未經預先定義的常量 直接出現在 中。2 強制 在long或者long賦值時,數值後使用大寫的l,不能是小寫的l,小寫容易跟數字 1 混淆,造成誤解。說明 long a 2l 寫的是數字的 21,還是 long 型的 2?3 推薦 不要使用乙個常量類維護所有常量,要按常...

程式設計規約之其他

強制 在使用正規表示式時,利用好其預編譯功能,可以有效加快正則匹配速度。說明 不要在方法體內定義 pattern pattern pattern.compile 規則 強制 velocity 呼叫 pojo 類的屬性時,建議直接使用屬性名取值即可,模板引擎會自動按規範呼叫 pojo 的 get 如果...

編碼規約之索引規約

目錄 一 強制 1.業務上具有唯一特性的字段,即使是多個欄位的組合,也必須建成唯一索引 2.超過三個表禁止 join 3.在 varchar 欄位上建立索引時注意項 4.頁面搜尋嚴禁左模糊或者全模糊 二 推薦 1.如果有 order by 的場景注意索引的有序性 2.利用覆蓋索引來進行查詢操作,避免...