Clean Code:フォーマット



今日実装される機能は、次のバージョンで変更される確率が高い.しかし,今日実現されるコードの可読性は,後で変更されるコードの品質に大きな影響を及ぼす.
時間が経つにつれて、コードが元のコードの痕跡を見つけるのが難しくなっても、最初に決定された実装スタイルと可読性のレベルは、メンテナンス性と拡張性に影響します.
スムーズなコミュニケーションを奨励するコード形式は以下の通りです.

1.適切な行の長さ


  • 200行程度のファイルで巨大なシステムを構築できます.

  • 小さな書類は分かりやすい.

  • 新聞記事のように書かれています.
    上から下へ、名前は簡単で内容を説明し、内容は高レベルの概念とアルゴリズムから始まり、最後に低レベルの関数と詳細です.

  • 概念を空白行に分離
    パケット宣言、import、および各関数の間に空白行を追加します.

  • たてみつど
    密接な線分の間は垂直に近い.
  • // BAD
    public class ReporterConfig{
        /**
        * 리포터 리스너의 클래스 이름
        */
        private String m_className;
        
        /**
        * 리포터 리스너의 속성
        */
        private List<Property> m_properties = new ArrayList<Property>();
        public void AddProperty(Property property) {
            m_properties.add(property);
        }
    }
    
    // GOOD
    public class ReporterConfig{
        private String m_className;
        private List<Property> m_properties = new ArrayList<Property>();
        
        public void AddProperty(Property property) {
            m_properties.add(property);
        }
    }
  • 垂直距離
  • 変数は使用位置付近で
  • を宣言する.
  • インスタンス変数(通常)は、クラス
  • として最初に宣言された.
  • 従属関数呼び出し関数より先に
  • 配置する.
  • 種の属関係でなくても親和度の高い関数間に
  • を近距離に置くことができる.

  • 水平書式
    普通は120文字を超えないでください.

  • 水平空白と密度
    空白は2つの要素が確かに分かれていることを示している.
  • private void measureLine(String line) {
      lineCount++;
      int lineSize = line.length(); //할당연산자 강조
      totalChars += lineSize; //할당연산자 강조
      recordWidestLine(lineSize); //함수와 인수는 밀접하므로 공백 없음
      lineWidthHistogram.addLine(lineSize, lineCount); //인수들은 별개라는 사실을 보여주기 위해 공백으로 분리
    }
  • チーム・ルール
    開発者一人一人が好きなルールを持っていますが、チームとして働く場合は、チームルールを優先する必要があります.1つのコードで見られる形で別のコードでも使用される信頼感を高めることで、可読性が向上します.