@kyanny's blog

My thoughts, my life. Views/opinions are my own.

Rails勉強会@東京第60回に参加した

Rails' Wiki - RailsMeetingTokyo-0060に参加した。だらだらっと感想を。前回の参加は2010/06/19だったようなので(ブログに書きそびれた回がなければ)半年以上も前。ずいぶん久しぶりだった。

今回はポジションペーパーを用意して行った(書いたのは当日家を出る直前だったけど)ら、セッションの合間に雑談したときに、書いて置いた内容に触れてもらえたりして、書いてよかったなぁと思った。

今回は秋葉原ダイビルの笹田研での開催。ダイビルは何かの勉強会で来たことがある記憶があるけど、ずいぶん久しぶりだった。駅から近いのでアクセスがよくて、迷わずに済んだ。

今回はセッションが多くて盛り沢山という印象を受けた。最初は笹田研の学生さんによる Ruby プログラム用のリアルタイムプロファイラの紹介で、質疑応答の時間が面白かった。おれも少し発言させてもらったけど、ウェブ屋の立場だと Ruby で書いたプログラム部分の実行速度がボトルネックになることはまれだし、ボトルネックをリアルタイムに見たいという要求もあまりないのかなと。それよりはプロダクション環境に仕込みっぱなしにしていても動作にあまり影響を与えないことだとか、「毎日ピーク時間帯に5分間だけプロファイルをとっておいてあとで一週間分並べて比較したい、それ以外の時間はプロファイリングをオフにしておきたい」なんてことができると嬉しいのかなと思った。「(研究室にはアプリケーションはないので)そういう意見は興味深い」とおっしゃっていたのが印象的だった。面白そうなので公開されたらちょっと試してみたいと思ってます。

その後は kaminari のソースコードリーディングを作者自ら解説してくれるという贅沢なセッション。 Rails Engine の仕組みとかまったく知らなかったので勉強になりました。

後半は投票で4つのセッションに別れて、おれはテスト関連の二つに参加した。一つ目はテストを書くほうにフォーカスした話題で、テストフレームワークの話題から fixture replacement について割と突っ込んだ話ができた。 factory_girl を使っている人が多くて、使っているからこそここが嫌だよね、という話題がでて共感できたし、やっぱここはみんな悩むんだな、というのがわかったのは心強かった。この話はあとでまた別に書く。あとテストの実行を早くするためにどういう工夫をしているか、とか、 functional test と integration test はどうしてる? Cucumber でカバーしてるよ、みたいな話とか。やっぱり永和システムマネジメントの方とか、それ以外でもテストをちゃんと真面目に書いている人たちのお話を聞くと、もっとちゃんとやらなきゃなと思うと同時に、やればできるんだという希望にもなって、いい刺激になる。

二つ目はテストを実行するほうにフォーカスした話題で、こちらは少人数だったので別室に移動してテーブルを囲んでさらに打ち解けた感じで話をした。特に CI (継続的インテグレーション) の話題に重点が置かれていて、 BigTuna というツールを導入している方が実際に社内で利用している様子をデモで見せてくれながら紹介してくれた。こういう内側で使うツールを実際に使っているところを見せてもらえる機会はなかなかないので貴重だと思う。 BigTuna は導入も比較的簡単そうだし、あまり多くのことをやらないのでごてこてしていないように見えるし、でも出来て欲しいことはできるだけの機能は揃っていそうで、かなりよさそうに思えた。ぜひ導入したいと思う。あとは、テストがない・動かないという意味でのレガシーコード・レガシーテストに対して CI を導入するとか結構ハードル高いけどどうしたらいいんだろう?なんて相談をして、古いマイグレーションが機能してないようなら全部捨てて db:schema:dump して作った schema.rb を新しい世代のマイグレーションの一個目として採用して仕切り直すと良いとか、 RSpec だと「今はパスしないけどあとで直すのでちょっと待て」みたいなテストケースに対して pending というマークをつけられるけど Test::Unit だとできないのでコメントアウトしちゃってる、でもだんだん見栄えが悪くなっていって気分が盛り下がるよね、なんて話をしたら、 if false ... warn ... end とかで囲ってしまって、ちゃんとパスしてないテストがあるぞってメッセージを発するようにしておいたほうがいいよとか、とても実践的 (practical) な Tips を教えてもらえて、とてもとても有意義だった。

勉強会が終わったあとは、時間の都合がつくひと数人で近くの居酒屋へいって軽くお酒を飲んだりしながらいろいろお喋りができて、これもとても楽しかった。 Tokyo Rubyist Meetup というイベントの話を聞いたりして、英語でコミュニケーションする機会を増やしたいと思っているおれにはうってつけの場のように思えたので、来月以降で都合のつく日は参加してみたいと思った。それ以外にも、バージョン管理にまつわる話とか、やっぱりテストの話とか、タスク管理・プロジェクトマネジメント的な話とか、割とお仕事する上で頭を悩まされがちな話題についていろいろ話ができた。

皆さんありがとうございました。次回は「railstokyo のおかげで CI 導入できました」なんて話ができたらいいなと思ってます。頑張ろう。