Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

設計原則

コードの変更容易性を保つための、経験則としての原則群。

原則どうしの関係

すべての原則は根っこでは同じことを言っている:モジュール間の結合度を下げ、モジュール内の凝集度を上げよ、ということ。 その理由を掘り下げたのが 結合度と凝集度、オブジェクト指向設計として具体化したのが SOLID原則、より一般的な習慣として言語化したのが KISS・YAGNI・DRYほか、 それ以外の個別トピックを その他の原則 にまとめている。

ページスコープ一言でいうと
結合度と凝集度モジュール分割の評価軸他の原則の「なぜ」を説明する土台
SOLID原則クラス設計オブジェクト指向における5つの具体的指針
基本原則コード全般KISS, YAGNI, DRY, PIE, SLAP など汎用的な心がけ
その他の原則個別トピックデメテルの法則、CQS、契約による設計など

原則は互いにトレードオフの関係になることもある(例:DRYを徹底しすぎるとYAGNIやSLAPに反する抽象化を生む)。 どれか1つを教条的に適用するのではなく、今のコードの複雑さに対して原則が何を改善するかを都度考えるとよい。

これらのスコープをさらに広げると、クラスをまたいだ再利用可能な構造として デザインパターン、 アプリケーション全体の構造として ソフトウェアアーキテクチャ に繋がる。