Clean Code
2022/03/02
プログラミングClean Codeとは
「CLEAN」は以下に示す5つのコード品質評価尺度の頭文字をとったもの。多面的な観点からコードを評価することでコード品質を向上できる。
凝集性
一般的に、凝集性は集合体の統合性の強さを示す概念。プログラミングにおける凝集性は、モジュール(ライブラリ、クラス、メソッド)内の意味的なまとまりの強さを表す。
凝集度が高いコードは、どのクラスがどの役割(責務)を担っているのかが明確で可読性が高まる。また、ある箇所の変更が他の箇所に影響しにくいため、堅牢性や保守性が高まる。
疎結合
モジュール(ライブラリ、クラス、メソッド)間の依存関係が弱いことを指す。コードを疎結合にしておくことで、保守性が高まると同時に再利用が容易になる。
カプセル化
パルナスの規則に基づいて、インターフェースと実装を切り離し、実装を隠蔽してインターフェースのみを公開すること。適切にカプセル化することで、内部の情報や手続きを気にする必要がなくなるため、コードの利用や拡張が容易になる。
断定的
各オブジェクトが独立していて、自分自身の状態に責任を持ち、自分自身で管理している状態。断定的なコードは自然と凝集性が高まる。
非冗長
冗長性とは意図の繰り返すこと。同一のコードでなくても、同一の意図の処理を繰り返しているコードは冗長なコードといえる。冗長な部分は括りだしてまとめることで、保守性が高まる。