5月8日の6時半からロンドンRubyユーザー会の集まりがあったので、参加してきました。

私はこういった類の集まりに参加したことはなかったので「おたっキーな人達ばかりだったらどうしよう」とびびってましたが、心配は無用でした。

みんな普通なひとたち、いやどちらかといえば標準以上の外見の人達が多かったです。「Ruby オットコマエ伝説」(http://jp.rubyist.net/magazine/?0001-RubySports)はイギリスでも健在でした。

ユーザー会に関してですが、6時から7時半ぐらいまではBen Griffithsという人が「Ruby Testing Technics」というお題で、いかRailsに装備された環境などを利用してテストを効率的に行うかを話してくれました。 

「いや〜大変参考になりました」といいたいところなのですが、はっきりいって半分ぐらいしか理解でいませんでした。

私自体開発経験がないのでJavaと比較して、いかにテスト環境をアプリ全体から切り離したUnit Testingが簡単かなどを説明はチンぷんかんぷん。

そしてなにより、私達のバイブルである 「RailsによるアジャイルWebアプリケーション開発」のテスティング の章を「めんどくさいから」とすっ飛ばして読んでいなかったのがたたりました。

ただわからないなりにノートをとっておいたので、要点を箇条書きにします(本当はMP3プレーヤーで録音するつもりだったのですが、家に忘れてきました、ゴメンなさい)

1.普通テストするときの名前はname1,name2とか、適当につけてしまいがちだけれど、ちゃんと何をしたいかをどれだけ長くなってもいいからファンクション名に書き込むこと(彼はこの長たらしくつけたテストのネーミング方法を利用したテスト用スクリプトを作成しているようです。日本語の記事もhttp://wiki.fdiary.net/rails/?HowToDoTestDrivenDevelopmentInRails に出ています。)

2.fixtureを使うとテストが長くなるのでつかわない方がよい(fixtureが何かわかってないのですが、以下にさらりと解説されています。http://jp.rubyist.net/magazine/?0004-RubyOnRails)

3.あるモデルについてのテストをしたい場合、通常だとそれに付随したファイルアクセスとかデータベースアクセスとかに時間をとられがち。そういう場合は付随オブジェクトを他のダミーオブジェクトに置き換えるのがJavaに比べてRubyは簡単。

あと会話の中でmockingとかStubbingとかいう単語が出てきたんですがなんのことだか良くわかりませんでした。プログラミングでは良く使われているようですが、どなたかわかる人がいたら教えてください。

参加人数は30人程度だったと思います。
最後のQ&Aの時に司会の人が参加者のルビー使用度を聞くと以下のようになっていました。

A:Rubyで構築したアプリを本番環境でつかっている人=3〜4人
B:Rubyを用いたプロジェクトを進行中=3〜4人
C:Ruby初めて =3〜4人(私を含めて)

ここでふつふつ疑問がわきあがってきたので、思い切って手を上げて聞いて見ました「今手を上げていない人って何にRubyをつかってるんですか?たんなる趣味ですか?それとも社内で個人的にちょこちょこ使っている程度ですか?あと社内で広めたい場合、会社の同僚をどうやって説得しますか?」

結構おもいきったこと聞いたなと思います。

司会の人から「そういうことはパブでお話しましょうね」とあざやかにかわされてその場はお開き。パブでの飲み会に突入しました。

8時から〜10時くらいまで飲んでいろんな人達とおしゃべりして大変楽しかったです。
参加者の経歴はさまざまで、Ruby触ったこともないデザイナーの人がいれば、「日本にいたことある」と日本語で話しかけてくれた人もいました。

「日本人ってだけでRubyの達人と誤解しないでね」というと、先の講義中に隣に座っていたデザイナーの人は「いや〜てっきりRubyのコードの半分以上は君が書いたんじゃないかと思ってたよ」といわれました。

さきほどの「社内でどうつかっているの」?というトピックに関しては、とある金融機関で働いている参加者の人が興味深いことをいっていました。「オープンソースとかはコンサバな金融ではご法度だけれど影では結構Ruby使っている人いると思うよ。うちではトレーディングのリスク管理をするシステムをJavaで書いているけれど、トレーダーから頼まれる、緊急のレポート機能とかはRubyで書いたほうがぜんぜん早いよ」とのこと。一度Rubyでしばらく書いていて久しぶりにJavaに戻ると「何でRubyだったらちょこっと書いて終わりなことをJavaで延々と書き続けなきゃいけないの」と思っちゃうとのことです。

そのほかに開発者の視点から、いかにOO(オブジェクト指向)の思想とRDBMSの思想がかみ合わないかと、そのあたりを実装するのに苦労するかの話を聞きました。