Clean Code

2022/03/02

プログラミング

Clean Codeとは

「CLEAN」は以下に示す5つのコード品質評価尺度の頭文字をとったもの。多面的な観点からコードを評価することでコード品質を向上できる。

  • 凝集性(Cohesive)
  • 疎結合(Loosely Coupled)
  • カプセル化(Encapsulated)
  • 断定的(Assertive)
  • 非冗長(Nonredundant)
  • 凝集性

    一般的に、凝集性は集合体の統合性の強さを示す概念。プログラミングにおける凝集性は、モジュール(ライブラリ、クラス、メソッド)内の意味的なまとまりの強さを表す。

    凝集度が高いコードは、どのクラスがどの役割(責務)を担っているのかが明確で可読性が高まる。また、ある箇所の変更が他の箇所に影響しにくいため、堅牢性や保守性が高まる。

    疎結合

    モジュール(ライブラリ、クラス、メソッド)間の依存関係が弱いことを指す。コードを疎結合にしておくことで、保守性が高まると同時に再利用が容易になる。

    カプセル化

    パルナスの規則に基づいて、インターフェースと実装を切り離し、実装を隠蔽してインターフェースのみを公開すること。適切にカプセル化することで、内部の情報や手続きを気にする必要がなくなるため、コードの利用や拡張が容易になる。

    断定的

    各オブジェクトが独立していて、自分自身の状態に責任を持ち、自分自身で管理している状態。断定的なコードは自然と凝集性が高まる。

    非冗長

    冗長性とは意図の繰り返すこと。同一のコードでなくても、同一の意図の処理を繰り返しているコードは冗長なコードといえる。冗長な部分は括りだしてまとめることで、保守性が高まる。


    著者画像

    ゆうき

    2018/04からITエンジニアとして活動、2021/11から独立。主な使用言語はPython, TypeScript, SAS, etc.