アリババJavaプログラミングプロトコルの命名スタイル

1. [必須]コード内の名前は、アンダースコアまたはドル記号で開始することも、アンダースコアまたはドル記号で終了することもできません。
反例:_name / __name / $ name / name_ / name $ / name__

2.【必須】コードの命名に拼音と英語を使用することは固く禁じられており、中国語を直接使用することは許可されていません。
説明:正しい英語のスペルと文法により、読者は曖昧さを理解し、回避することが容易になります。純粋な拼音の命名方法でさえ避けるべきであることに注意してください。
良い例:アリババ/淘宝網/ youku /杭州および他の国際的な名前は英語と見なすことができます。
反例:DaZhePromotion [discount] / getPingfenByName()[score] / int some variable = 3

3. [必須]クラス名は、DO / BO / DTO / VO / AO / POなどの状況を除いて、UpperCamelCaseスタイルを使用します。
肯定的な例: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.【必須】型括弧と角括弧を並べて接続し、配列を定義します。
正の例:整数配列int [] arrayDemoを定義します。負の
例:メインパラメーターで、String args []を使用して定義します。

8. [必須] POJOクラスのブール変数の場合、isプレフィックスを追加しないでください。追加しないと、部分的なフレーム分析によってシリアル化エラーが発生します。
反例:基本データ型ブールisDeletedのプロパティとして定義され、そのメソッドもisDeleted()です。RPCフレームワークが逆解析を実行するときに、対応するプロパティ名が削除されたとRPCフレームワークが「誤って考える」場合、プロパティはできません。取得され、異常をスローします。

9. [必須]パッケージ名には小文字を一律に使用し、ドット区切り文字の間に自然な意味を持つ英語の単語は1つだけです。パッケージ名は単数形を統一的に使用しますが、クラス名が複数形を意味する場合、クラス名は複数形を使用できます。
良い例:アプリケーションツールのクラスパッケージの名前はcom.alibaba.ai.utilで、クラス名はMessageUtilsです(このルールはSpring Framework構造を参照します)

10. [必須]絶望を避けるために、完全に不規則な略語に終止符を打つこと。
反例:AbstractClassの「abbreviation」の名前はAbsClass、条件の「abbreviation」の名前はcondiです。このような任意の省略形は、コードの可読性を大幅に低下させます。

11. [推奨]コードの自己解釈という目標を達成するために、カスタムプログラミング要素に名前を付けるときは、その意味を表現するために可能な限り完全な単語の組み合わせを使用してください。
良い例:リモートウェアハウスからコードをプルするクラスは、PullCodeFromRemoteRepositoryという名前です。
反例:変数inta;の任意の命名。

12. [推奨]モジュール、インターフェイス、クラス、およびメソッドにデザインパターンを使用する場合は、特定のパターンを名前に反映させる必要があります。
説明:名前にデザインパターンを反映すると、読者がアーキテクチャの設計コンセプトをすばやく理解するのに役立ちます。
良い例:

パブリッククラスOrderFactory;

パブリッククラスLoginProxy;

パブリッククラスResourceObserver;

13. [推奨]インターフェイスクラスのメソッドと属性に修飾子を追加しないでください(パブリックでもありません)。コードを簡潔に保ち、有効なJavadocコメントを追加してください。インターフェイスで変数を定義しないようにしてください。変数を定義する必要がある場合は、インターフェイスメソッドに関連している必要があり、アプリケーション全体の基本定数です。
正の例:インターフェイスメソッドの署名void f();インターフェイスの基本定数String COMPANY = "alibaba";負の
例:インターフェイスメソッドの定義public abstract void f();
注:JDK8のインターフェイスではデフォルトの実装が許可されているため、このデフォルトのメソッドは正しいです。すべての実装クラスには、デフォルトの値の実装があります。

14.インターフェイスと実装クラスの命名には2つのルールセットがあります
。1)[必須]サービスクラスとDAOクラスの場合、SOAの概念に基づいて、公開されるサービスはインターフェイスである必要があり、内部実装クラスは次のように区別されます。インターフェイスからのImplのサフィックス。
良い例:CacheServiceImplはCacheServiceインターフェースを実装します。
2)[推奨事項]機能を説明するインターフェース名の場合は、対応する形容詞をインターフェース名として使用します(通常は–ableの形式)。
良い例:AbstractTranslatorはTranslatableを実装しています。

15. [参照]列挙型クラス名には、列挙型の接尾辞を付けることをお勧めします。列挙型メンバーの名前はすべて大文字にし、単語は下線で区切る必要があります。
注:列挙は実際には特別な定数クラスであり、コンストラクターはデフォルトでプライベートに強制されます。
肯定的な例:ProcessStatusEnumのメンバー名を列挙します:SUCCESS / UNKNOWN_REASON。

16. [参照]各レイヤーの命名規則:
A)サービス/ DAOレイヤーメソッドの命名規則
1)単一のオブジェクトを取得するメソッドの前にはgetが付いています。
2)複数のオブジェクトを取得する方法には、接頭辞listが付いています。
3)統計値を取得する方法は、プレフィックスとしてカウントを使用します。
4)挿入メソッドは、プレフィックスとして保存/挿入を使用します。
5)deleteメソッドは、プレフィックスとしてremove / deleteを使用します。
6)変更されたメソッドは、プレフィックスとしてupdateを使用します。
B)ドメインモデルの命名規則
1)データオブジェクト:xxxDO、xxxはデータテーブルの名前です。
2)データ送信オブジェクト:xxxDTO、xxxはビジネスフィールドに関連する名前です。
3)表示オブジェクト:xxxVO、xxxは通常Webページの名前です。
4)POJOはDO / DTO / BO / VOの総称であり、xxxPOJOという名前にすることは禁じられています。

おすすめ

転載: blog.csdn.net/wangpei930228/article/details/108322751