アリババjava開発マニュアル詳細-プログラミング規則(二)-定数定義


(二)定数定義
1、「強制」は、コードに魔法値(すなわち、定義されていない定数)が直接現れることを許さない.反例:
String key = "Id#taobao_" + tradeId;       
cache.put(key, value); 

2、【強制】longまたはLong初期付与の場合、大文字のLを使用し、小文字のlではなく、小文字は数字1と混同されやすく、誤解を招く.説明:Long a=2 l;数字の21と書いてありますか、それともLong型の2と書いてありますか.
3、【推奨】1つの定数クラスを使用してすべての定数を維持せず、定数機能によって分類し、別々に維持する.説明:大規模で完全な定数クラスは、検索機能を使用して修正された定数にナビゲートする必要があり、理解とメンテナンスに不利です.正例:キャッシュ関連定数をクラスCacheConstsの下に置く;システム構成に関する定数はクラスConfigConstsの下に置かれます.
4、【推奨】定数の多重階層は5層ある:応用間共有定数、応用内共有定数、サブエンジニアリング内共有定数、パケット内共有定数、クラス内共有定数.1)アプリケーション間共有定数:通常client.JArのconstantディレクトリの下にあります.2)アプリケーション内共有定数:通常modulesのconstantディレクトリの下にある一方のライブラリに配置されます.反例:分かりやすい変数もアプリケーション内共有定数として統一的に定義し、2人の攻城師は2つのクラスでそれぞれ「はい」を表す変数を定義した.
//  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、【推奨】変数値が1つの範囲内でのみ変化し、名前以外の拡張属性がある場合は、列挙クラスとして定義します.次の例の数字は、曜日を表す拡張情報です.正例:
public enum Week {
    MONDAY(1),
    TUESDAY(2),
    WEDNESDAY(3),
    THURSDAY(4),
    FRIDAY(5),
    SATURDAY(6),
    SUNDAY(7);
    private Integer code;
    
    Week(Integer code) {
        this.code = code;
    }
}

上一篇:アリババjava开発マニュアル详细解-プログラミング规约(三)-コードフォーマット