ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

Rubyで唱えるとっておきの魔法集

久々に読書タグです。
今回は

メタプログラミングRuby

メタプログラミングRuby

こちらの本です。
だいぶ前に立ち読みした時はなんか難しそうだなと身構えていたのですが、じっくり読んでみると意外と難しいってことはなかったかなと思いました。もちろん普通のプログラミングよりはなんかよくわからないところがありますが、なんだかんだで断片的に知っていたことが多かった気がします。ただ、あくまでも「ちょっと知ってる」というだけであって、それで何かできるのかといわれると言い返せない感じです。ちょっと悔し。
中身のほうですが、大まかには2部構成になっています。前半はあなたと先輩Rubyistのビルによる1週間のメタプログラミング問答です。Rubyのインタープリターがどうやってメソッドを呼び出しているかの説明から始まり、しまいにはRubyの算術演算を書き換える黒魔術まで披露してくれます。ちょっとしたクイズ形式になっているので、一度手を動かしてみることができれば動かしてみるといいかもしれません。
後半はVer.2系のRuby on Railsを実例にとって、メタプログラミングの実例を観光気分で俯瞰する感じになっています。古いコードとはいえ、ActiveRecordのメンバーにアクセスするメソッドの挙動を解説してくれたのもいい感じです。どうなっているんだろうと気になっていたところだったので、いいタイミングでした。最後におまけとして黒魔術の詠唱例本書に出てきたトリックの一覧が載っています。たぶん黒魔術のチートシートとしてだけでも十分に読む価値あります。まさに黒魔術師入門書。
ちなみに私がいちばん膝を打ったテクニックはselfをyieldするものでした。設定クラスでやるとRailsやそのプラグインでよく見るあの感じになるんだろうな…