設計の悪臭と原則のメモ

全然頭に入らないなぁ〜・・・


アジャイルソフトウェア開発の奥義」より


貧弱な設計の兆候
1.硬さ - 設計変更が困難
  →1つを修正しようとすると依存関係のあるモジュールを
   芋づる式に修正しなきゃいけないとか。
   よくあるよね・・・
2.もろさ - 設計が壊れやすい
  →1箇所を変更sるうと他が壊れる。
    修正すればするほど壊れるパターンか
3.移植性のなさ - 設計の再利用が困難
  →他のシステムでも使えるのに切り離せない状態
4.扱いにくさ - 正しい設計をするのが困難
  →ソフトウェアの扱いにくさと開発環境の扱いにくさ
   裏技で使ったほうが楽なら扱いにくいと。
   ビルドが遅くて大きな修正をしたくないとかは
   開発環境が扱いにくいってこと。
5.不必要な複雑さ - 行き過ぎた設計
  →あらかじめ後の仕様変更を見越していれた機能とか
   どーせ使われないのにね。
6.不必要な繰り返し - マウスを使いすぎ
  →コピペ
   コピペ元コードもどっかからのコピペかもしれない
7.不透明さ - 整然としない表現
  →たぶん1つの関数でいろんな事としているとかかな?


原則
1.単一責任の原則(SRP:Simple Responsibility Principle)
2.オープン・クローズドの原則(OCP:Open-Closeed Principle)
3.リスコフの置換原則(LSP:Liskov Substitution Principle)
4.依存関係逆転の原則(DIP:Dependency Inversion Priniciple)
5.インターフェース分離の原則(ISP:Interface Segregation Principle)