- 1.POODR 第1章:オブジェクト指向設計
なぜ設計が重要なのか — 変更の真のコスト、ソフトウェアをメッセージをやり取りするオブジェクトの集まりとして捉えること、そして依存関係を管理する技術としての設計。
・1 分🌐 - 2.POODR 第2章:単一責任を持つクラスを設計する
クラスに一つのことだけをさせる — SRP、TRUE テスト、インスタンス変数をメソッドの背後に隠すこと、そして変更を安価に保つためにデータ構造を隔離すること。
・2 分🌐 - 3.POODR 第3章:依存関係を管理する
依存関係を認識し、隔離し、逆転させる — dependency injection、抽象に依存すること、そして依存が向くべき方向をどう選ぶか。
・2 分🌐 - 4.POODR 第4章:柔軟なインターフェースをつくる
オブジェクト間のメッセージを設計する — パブリックとプライベートのインターフェース、「どうやって」ではなく「何を」を求めること、コンテキストからの独立、そしてデメテルの法則。
・1 分🌐 - 5.POODR 第5章:duck typing でコストを削減する
クラスではなく振る舞いによって定義されるクラス横断的なインターフェース — case-on-class や responds_to? のチェックの裏に隠れたダックを見抜き、オブジェクトをその振る舞いによって信頼する。
・2 分🌐 - 6.POODR 第6章:継承による振る舞いの獲得
正しく行うクラス継承 — どこに適合するかを見極め、具象クラスを抽象スーパークラスへとリファクタリングし、super の代わりにフックを用いた template method パターンを使う。
・2 分🌐 - 7.POODR 第7章:モジュールでロールの振る舞いを共有する
Rubyのモジュールを使って、無関係なクラス間で振る舞いを共有する — ロールを見極め、継承可能なモジュールコードを書き、メソッド探索を理解し、行儀のよい継承のルール(Liskov、フック、浅い階層)を押さえる。
・1 分🌐 - 8.POODR 第8章:compositionでオブジェクトを組み合わせる
部品からオブジェクトを組み立てる — composition vs inheritance、has-a関係、factoryとroleによるモデリング、そしてinheritance・modules・compositionの選択基準。
・2 分🌐 - 9.POODR 第9章:コスト効果の高いテストを設計する
自分自身のコストを回収するテストの書き方 — 何を、いつ、どうテストするか。incoming/outgoing メッセージのテスト方法と、設計が進化してもテストスイートの保守コストを抑える方法。
・2 分🌐