第3回Gotanda.rb
いつも通り月曜8時から大崎広小路のベローチェにて。
今回はnikuさんが書いているYma4rというモジュールでclassxが使われてるらしいので、nikuさんと一緒にコードリーディングした。
http://github.com/niku/yma4r/tree/fe5360f0c908a18116c91f4e9be0b79300962e6c
みたいにリファクタリングした。
http://niku.name/diary/20090223.html#p02 にポイントがまとまってる。
家に帰ってから、もうちょっと気になるところがあったので、色々変えてみた
http://github.com/walf443/yma4r/tree/master
classxを使う上で同じような属性が何度も出てくるようであれば、それはclassxの属性としてそのまま拡張していくんではなくて、クラスとかにくくり出したほうがいいのかなと思ったり。属性が並んでるときになるべくシンプルで見やすいことが重要かなと思っているので。
あと、自分がこの前認識していなかったのは、1.9からproc {|val| ... }がlamda {|val| ... }と等価ではなくなり、Proc.new {|val| ... }と等価になったので、classxで無名関数を渡すようなやつは、lambdaで書いておいた方が途中でreturn書くような処理の場合によいかも。procで書いてもbreakで書けばいいっぽいのでそこまで神経質になる必要はないのかも。詳しくは、プログラミング言語Rubyのp.204の「procとlambdaの違い」の項目を参照のこと。
プログラミング言語RubyはThe Ruby Wayよりも濃いトピックが多くて非常に面白いですが、やや難しい箇所も結構あるようなので、輪読会みたいなのもよいなぁと思ったりしました。