命名規則
1. [必須] コード内の名前は、アンダーラインまたはドル記号 で始まったり、アンダーラインまたはドル記号 で終わることはできません。
反例: _name / __name / $Object / name_ / name$ / Object$
2. [必須] コード内の命名は次のとおりです。ピンインと英語を混ぜて使用したり、中国語を直接使用したりすることは厳禁です。
注: 英語のスペルと文法を正しくすると、読者が理解しやすくなり、曖昧さを避けることができます。純粋なピンイン命名方法 であっても避けるべきであることに注意してください。
反例: DaZhePromotion [割引] / getPingfenByName() [評価] / int 特定の変数 = 3
# 肯定的な例: alibaba / taobao / youku / Hangzhou などの国際的に一般的な名前は英語と同じと見なすことができます。
3. [必須] クラス名は UpperCamelCase スタイルを使用し、次の例外を除いてキャメル ケースに準拠する必要があります: (ドメイン モデルの関連命名 ) DO / BO / DTO / VO など。
正の例: MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例: MacroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
4. [必須] メソッド名、パラメーター名、メンバー変数、ローカル変数はすべて lowerCamelCase スタイルを使用し、 キャメルケース形式に従う必要があります。
肯定的な例: localValue / getHttpMessage() / inputUserId
5. [必須] 定数名はすべて大文字で指定し、単語を区切る必要があります。意味上の意味を達成するためにアンダースコアを使用します。完全かつ明確に表現し、長い名前を恥ずかしがらないでください。
正の例: MAX _ STOCK _ COUNT
反例: MAX _ COUNT
6. [必須] 抽象クラス名前は Abstract または Base で始まり、例外クラスの名前は Exception で終わり、テスト クラスの名前 はテスト対象のクラスの名前で始まり Test で終わります。
7. [必須] 角括弧は配列型の一部です。配列は次のように定義されます: String[] args;
反例: 定義に String args[] を使用しないでください。
8. [必須] POJO クラスのブール型変数に is を追加しないでください。追加しないと、一部のフレームワーク解析でシリアル化エラーが発生します。
反例: は基本データ型 boolean isSuccess の属性として定義されており、そのメソッドも isSuccess() です。RPC フレームワークが逆解析を実行すると、それに対応する属性名が返されます。 「for」は成功を意味し、属性が取得されず、例外
がスローされます。
9. [必須] パッケージ名は小文字である必要があり、ドット区切り文字の間に自然な意味を持つ英単語が 1 つだけ存在する必要があります。パッケージ名には常に単数形 が使用されますが、クラス名に複数の意味がある場合は、クラス名に複数形を使用できます。
良い例: アプリケーション ツール クラス パッケージの名前は com . alibaba . open . util で、クラス名は MessageUtils です (このルールは のフレームワーク構造を参照します) spring)
10. [必須] テキストの意味を混乱させないように、完全に標準外の略語は避けてください。
反例: AbstractClass の "省略形" は AbsClass であり、条件の "省略形" は condi です。このような任意の省略形は、コードの可読性を著しく低下させます。
11. 【推奨事項】 デザインパターンを使用する場合は、クラス名に特定のパターンを反映させることを推奨します。注: 名前に設計パターンを反映すると、読者がアーキテクチャ設計のアイデアをすぐに理解できるようになります。
良い例: public class OrderFactory;
public class LoginProxy;public class ResourceObserver;12. [推奨]インターフェイス クラスのメソッドとプロパティに変更記号を追加しないでください (パブリックも追加しないでください)。コードは簡潔なにして、有効な Javadoc コメントを追加してください。インターフェイスでは変数を定義しないようにしてください。変数を定義する必要がある場合は、インターフェイス メソッドに関連する 変数をアプリケーション全体の基本定数にする必要があります。
良い例: インターフェイス メソッド シグネチャ: void f();
インターフェイスの基本定数表現: String COMPANY = " alibaba " ;カウンター例: インターフェースメソッド定義: public abstract void f();
説明: JDK 8 のインターフェースではデフォルトが許可されています実装の場合、このデフォルトのメソッドは、すべての実装クラスにとって価値のあるデフォルトの実装です。 13. インターフェイスと実装クラスの命名には 2 つのルール セットがあります:
1) [必須] SOA の概念に基づいて、サービス クラスと DAO クラスの場合、公開されているサービスは Interface である必要があり、内部
実装クラスは Impl というサフィックスによってインターフェイスと区別されます。良い例:
CacheServiceImpl は CacheService インターフェイスを実装します。 2) [推奨] 機能を説明するインターフェイス名の場合は、対応する形容詞をインターフェイス名として使用します (通常は –able の形式)。 良い例: AbstractTranslator は Translatable を実装します。 14. 【参考】列挙型クラス名にはEnumサフィックスを付加することを推奨します 列挙型メンバ名はすべて大文字で単語をアンダースコアで区切る必要があります。 注: Enumeration は実際には特別な定数クラスであり、コンストラクターはデフォルトで強制的にプライベートになります。 正の例: 列挙名: DealStatusEnum、メンバー名: SUCCESS / UNKOWN _ REASON。 15. 【参考】各レイヤーの命名規則: A) サービス/DAO レイヤーメソッドの命名規則 1) 単一のオブジェクトを取得するメソッドには接頭辞 get が付きます。 2) 複数のオブジェクトを取得するメソッドには、リストという接頭辞が付けられます。 3) 統計値の取得方法には先頭に count が付きます。 4) 挿入方法には、save (推奨) または insert という接頭辞が付きます。 5) 削除方法には、接頭辞として「remove (推奨)」または「delete」が付きます。 6) 変更メソッドには、先頭に update が付きます。 B) ドメイン モデルの命名規則 1) データ オブジェクト: xxxDO、xxx はデータ テーブルの名前です。 2) データ転送オブジェクト: xxxDTO、xxx は業務分野に関連する名前です。 3) 表示オブジェクト: xxxVO、xxx は通常、Web ページの名前です。 4) POJO は DO / DTO / BO / VO の総称であり、xxxPOJO という名前を付けることは禁止されています。