(二)常量定義
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.利用覆蓋索引來進行查詢操作,避免...