アリババのプログラミング規則の定数定義


  • 【強制】コードに直接魔法値(すなわち、予め定義されていない定数)が現れることは許されない.反例:
  • String key = "Id#taobao_" + tradeId;       
    cache.put(key, value); 
    
  • 【強制】longまたはLong初期付与の場合、大文字のLを使用し、小文字のlではなく、小文字は数字1と混同されやすく、誤解を招く.説明:
    Long a = 2l;
    は数字の21と書いてありますか、それともLong型の2と書いてありますか.
  • 【推奨】1つの定数クラスを使用してすべての定数を維持しないで、定数機能によって分類し、別々に維持します.説明:大規模で完全な定数クラスは、検索機能を使用して修正された定数にナビゲートする必要があり、理解とメンテナンスに不利です.正例:キャッシュ関連定数をクラスCacheConstsの下に置く;システム構成に関する定数はクラスConfigConstsの下に置かれます.
  • 【推奨】定数の多重階層は、アプリケーション間共有定数、アプリケーション内共有定数、サブエンジニアリング内共有定数、パケット内共有定数、クラス内共有定数の5つの階層である.1)アプリケーション間共有定数:通常client.jarのconstantディレクトリの下に2つのライブラリに配置されます.2)アプリケーション内共有定数:一方のライブラリに配置され、通常はサブモジュールの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.変数値が一定範囲内でのみ変化する場合はenumタイプで定義します.説明:enumタイプを使用する名前以外の拡張プロパティがある場合、次の例の数字は、1年のいくつかの季節を表す拡張情報です.正例:
      public enum SeasonEnum {   
              SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);
              int seq; 
              SeasonEnum(int seq){         
                  this.seq = seq;     
              } 
      }