設計の悪臭と原則のメモ
全然頭に入らないなぁ〜・・・
「アジャイルソフトウェア開発の奥義」より
貧弱な設計の兆候
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)