※週一ランチタイムの読書会 ikejirirb/POODR

やったこと

  • POODR 3章 依存関係を管理する

memo

  • p59

    • オブジェクトに望まれる振る舞い
      • オブジェクト自身が知っている
      • 継承している
      • メッセージを理解する他のオブジェクトを知っている
  • p60

    • 一方のオブジェクトを変更したとき他方も変更しないといけないなら、片方に依存している
  • p61

    • 他のオブジェクトへの依存がありそうな場合 pig_nose
      • 他のクラスの名前がある
      • 他のオブジェクトのメッセージを知っている
      • メッセージの引数を知っている
      • 引数の順番を知っている
  • p63

    • 幾つものメッセージをチェーンのように繋いで遠くのオブジェクトに存在する振る舞いを実行しようとするのはやばい
  • p65

    • GearからWheelへの参照がgear_inchesメソッドの内部という深いところでハードコートされているとき「Wheelインスタンスのギアインチしか計算する意思はない:ということ
  • p67

    • 依存オブジェクトの注入(dependency injection)
    • 明示的依存⇔注入
  • p68

    • 不必要な依存を除去できないのなら、クラス内で隔離する
  • p69

    • 依存しているということを明らかにする
  • p 75

    • fetch
      • thought_balloon みたことない!
      • もう必要ないのでは?

感想

  • dependency injection(依存性注入)ということばはわかりづらいので、ことばにながされない!
  • ようは、依存している箇所を、メソッドの奥深くから取り出して依存がわかるようにしておくこと
  • 依存している箇所をとりだして置くことで、テストするときのモックデータとかを入れやすくなる
  • 2.0.0以降はキーワード引数があるから、第3章にあったような引数のデフォルト値の書き方はちょっと古い。でも、ライブラリのソースで出ることがあるので、古い書き方を知っておくのは大事!