JAVA | コードのスタイルと仕様

序文

最近、Ali の『Code Out Efficient Java Development Manual』を読んでいて、コード スタイルに関する章を読みました。数年間働いた後、この章をもう一度見てみると、いくつかのコード仕様が実装されていないことがわかりました。大企業はコード開発仕様により多くの注意を払っていますが、ほとんどの中小企業はそれほど注意を払っていません。私の意見では、良いコーディング習慣はコードの読みやすさと保守性の向上に役立ち、優れたプログラマーにとって不可欠な資質です。

命名規則

  • 包名同一使用小写,点分隔符之间有且仅有一个自然语义的英文单词。包名统一使用单数形式ただし、クラス名に複数の意味がある場合は、複数形を使用できます。
  • 抽象类命名使用Abstract或Base开头; 例外クラス名は Exception で終わり、テスト クラス名はテスト対象のクラスの名前で始まり、Test で終わります。
  • 类型与中括号紧挨相连来定义数组。
  • 列挙型クラス名の接尾辞は Enum, です枚举成员名称需要全大写,单词间用下划线隔开

注釈の内容を減らし、自然な説明の役割を果たすために、名前はテキストから明確である必要があります。不規則な略語はコードを理解しにくくする可能性があり、さらに大きな罪は他の人を間違った方向に導く可能性があります。たとえば、条件を condi と省略すると、同様の省略形はコードの可読性を低下させます。

一般に、変数の名前付けは小さいキャメルケース形式を満たす必要があります。ただし、特殊な場合があります在定义类成员变量的时候,特别是在POJO类中,针对布尔类型的变量,命名不要加is前缀,否则部门框架解析会引起序列化错误たとえば、フラグを削除するかどうかを定義する場合、成员变量为Boolean isDeleted,它的getter方法也是isDelete(),在框架反向解析的时候,“误以为”对应的属性名是delete,导致获取不到属性,进而抛出异常. ただし在数据库建表中,推荐表达是与否的值采用is_xxx的命名方式、この場合は設定する必要があり、データ テーブルの is_xxx フィールドは POJO クラスの属性 Xxx にマップされます。

コードの表示スタイル

インデント

推荐使用4个空格缩进,禁止使用Tab键異なるエディターではタブの解析に一貫性がないため、視覚的なエクスペリエンスが異なり、異なるエディター間ではスペースに互換性があります。

空間

スペースの使用はさらに次のように規制されます。

  1. 二項演算子および三項演算子の前にはスペースを入れる必要があります
  2. 注释的双斜杠与注释内容之间有且仅有一个空格
  3. 方法参数在定义和传入时,多个参数逗号后面必须加空格
  4. 中括弧内のコンテンツが空の場合は、単純な Ctrip {} で十分であり、中括弧内の改行やスペースは必要ありません。
  5. 左右の括弧と括弧内の隣接する文字の間にスペースを入れてはいけません
  6. 左大括号前需要加空格

例:

try{
    
    
    // 任何二目,三目运算符的左右两边都必须加一个空格
    boolean condition = (count == 0) ? true : false;

    // 关键词if与左侧小括号之间必须有一个空格
    // 左大括号前需要加空格,左大括号后必须换行
    if (condition) {
    
    
        System.out.println("hello");
        // else 的前后需要加空格
    } else {
    
    
        System.out.println("world");
    }
// 如果大括号中内容为空,则简洁的携程{}即可,大括号内无需换行和空格
} catch (Exception e) {
    
    }

// 方法参数在定义和传入时,多个参数逗号后面必须加空格
String result = getString(one, two, three);

改行

规定单行字符数不超过120个,超出则要换行、改行は次の規則に従います。

  1. 演算子は次のようにラップします
  2. メソッド呼び出しのドット表記は次のようにラップされます。
  3. メソッド呼び出し内の複数のパラメータをラップする必要がある場合は、カンマの後にラップします。
  4. 括弧の前で改行しないでください

约定一个方法内一般不超过80行コメント、改行、空白行、左右の中括弧を除くメソッド行の数。80 行を超えるメソッドは 5% 未満のみであり、これらのメソッドには通常、最適化の余地があります。

制御文

  1. if、else、while、do-while などのステートメントでは中括弧を使用する必要があります。コードが 1 行しかない場合でも、中括弧は省略できません。
  2. 在条件表达式中不允许有复制操作,也不允许在判断表达式中出现复杂的逻辑组合。
  3. 多層ネストは 3 レベルを超えません超过三层的if-else逻辑判断代码,推荐使用卫语句、策略模式、状态模式等来实现
  4. 否定論理演算子の使用は避けてください。たとえば、if(x<10) は x が 10 未満であることを表しますが、if(!(x>=10)) は使用できません。

ガードステートメントの例:卫语句就是把复杂的条件表达式拆分成多个条件表达式,比如一个很复杂的表达式,嵌套了好几层的if - then-else语句,转换为多个if语句,实现它的逻辑,这多条的if语句就是卫语句.

if (obj != null) {
    
    
  doSomething();
}
 
转换成卫语句以后的代码如下:
if (obj == null) {
    
    
   return;
}
doSomething();

コードコメント

クラス、クラス属性、およびクラス メソッドに関するコメントは、ドキュメント コメントの形式を使用して、Javadoc 仕様に従う必要があります/** */

  1. enum のアノテーションは必要ですが、そのコードは非常に安定しています。定義と使用に誤りがある場合、通常はより大きな影響が生じます。
  2. コメントの内容は属性値の意味の説明だけでなく、注意事項やビジネスロジックなども含めることができます。
  3. 列挙型クラスの削除または変更には大きなリスクが伴います。廃止された属性は直接削除できず、廃止としてマークする必要があり、廃止の論理的考慮事項とビジネス背景をコメントで説明します。

単一行のコメントと複数行のコメントは、特に強調して此类注释不允许写在代码后方コードの上に記述する必要があります。これは、不均一なコメントやコード レイアウトの混乱を避けるためです。

おすすめ

転載: blog.csdn.net/u012294515/article/details/100710541