[クリアコード]レイアウト5章


clean_code


毎週火曜日、金曜日に勉強します.
火曜日の金曜日までに、一人二枚ずつ読んで、一人一枚ずつ発表します.
成分別に動的に調整

  • 火曜日:奇数の陣形、偶数の時間

  • 金曜:時准奇数場、陣形偶数場
  • フォーマットの目的

  • コードのフォーマットが重要です!
  • コードの形式はコミュニケーションの一環である.
  • コードのスタイルと可読性のレベルは、メンテナンスの使いやすさと拡張性に影響します.
  • コードが消えても、開発者のスタイルと規律は消えません.
  • 適切な行間を保つ

  • 500,000行近くのシステムでも、各ファイルが500行を超えるファイルはなく、ほとんどは200行未満です.
  • ファイルごとに200行の大規模なシステムを構築できます.
  • 新聞記事のように書かれています。

  • 読者は下から上へ文章を読み、最上端にいくつかの要約文章のタイトルが現れた.
  • の名前だけで正しいモジュールかどうかを判断できます.
  • の第1の部分は、概念およびアルゴリズムを説明し、意図をより詳細に説明する.
  • は、最後に最下位レベルの関数と詳細です.
  • 概念を空行に分ける。

  • 一連の行束は完全な考えを表している.
  • のアイデアの間に空行を加えて、それを分けるべきです.
  • 便がなければ、可読性は著しく低下する.
  • たてみつど

  • の緊密なコード行は垂直に近づくべきです.
  • 垂直距離

  • 相互に密接な概念は縦に近づくべきである.
  • 関連性の深い2つの概念が遠い場合、コードを読む人はソースファイルとクラスをあちこち探します.
  • 変数は、可能な限り使用位置に近づきます.
  • インスタンス変数は、クラスで最初に宣言されます.(Javaは、C++が最後に宣言したハサミルール)
  • 依存関数は、1つの関数が別の関数を呼び出す構造である.依存関数構造では、2つの関数が垂直に近く配置され、関数を呼び出す関数よりも先に配置されます.
  • 横揃え

  • の短い行が望ましい.最大120文字の行長
  • を制限することを推奨します.

    水平空白と密度

  • 横道は、緊密な概念と緩やかな概念を表現するためにスペースを使用する.
    private void measureLine(String line){
    	lineCount++;
       int lineSize=line.length();
       totalChars+=lineSize;
       lineWidthHistogram.addLine(lineSize,lineCount);
       recordWidestLine(lineSize);
    }
    ビットコードは目立たないし、明確に区別する要素もない.
    次のような緊密な要素は、スペース(関数名とカッコの間)ではなく、付与文と引数の間にスペースを残し、独立した概念であることを強調し、便利に見えます.
    private void measureLine(String line) {
    	lineCount++;
       int lineSize = line.length();
       totalChars += lineSize;
       lineWidthHistogram.addLine(lineSize, lineCount);
       recordWidestLine(lineSize);
    }
  • 式では、演算子の優先度を強調するためにスペースがある場合もあり、スペースがない場合もありますが、通常ideは削除されます.
  • 水平位置揃え

  • コードは不正確な部分を強調する可能性があるので、ソートしないことをお勧めします.また、変数リストがソートが必要なほど長い場合、問題はリストの長さです.宣言書が長ければ、等級に分けるべきだ.
  • インデント

  • インデントはファイル構造を一目瞭然にし、可読性を大幅に向上させた.インデントされていないコードは分析に力を入れなければならない.
  • 簡単なif文、短いwhile文など、ルールを無視した誘惑がありますが、インデントで範囲を正確に表現しましょう.
    public class CommentWidget extends TextWidget{
    	public String render throws Exception {return "";}
    }
    は簡単に見えますが、次のコードを記述します.
    public class CommentWidget extends TextWidget{
    	public String render throws Exception {
       	return "";
       }
    }
  • ダミーレンジ

    while(dis.read(buf,0,readBufferSize) != -1)
    ;
    空でドアやforドアに遭遇した場合、この構造はよくありません.ただし避けられない場合は、空白のブロックを正しくインデントし、括弧で囲み、セミコロンで新しい行をインデントすることができます.

    チーム・ルール

  • チームは1つのルールについて合意し、すべてのチームメンバーはチームルールに従う必要があります.
  • n/a.結論

  • プロジェクトを行う場合は、チームルールを制定し、ルールを遵守します.(IDEで設定)
  • 文章を読むように
  • コードを書き、上から下へコードを書くべきだ.
  • の横、縦の適切な改行と空白によって可読性を向上させる.