メタプログラミングRuby 第8章 ActiveRecord の中身 その2

今日は ActiveRecord の動的ファインダのところです。

  • ActiveRecord::Base.find は find_by_ のように属性名を含むメソッドでの検索もできる
    • and, or での連結などもできる
  • 「ゴーストメソッド」で実装
    • 長い
    • ここでもやはり最初に method_missing でメソッドを定義して次からは直接呼び出せるようにしている
  • まとめ。パフォーマンスについて。推測せず計測せよ。早すぎる最適化はしない
  • メタプログラミングの複雑さ、許容量にはさまざまな観点があって一概に言えない
    • そりゃそうだ

後半はソースコードは多かったですが解説はあまりないのでするっと終わりました。
明日から第9章に入ります。

「付録」がちょっと長めなのでもう少し余裕がありますけど「メタプログラミングRuby」もそろそろ読み終わりです。次は何にするか思案中です。「Rubyベストプラクティス」をまだ読んでないので読みたいけど、Ruby本が続いてしまいますね。