ふぇみにん日記


2006-08-26 [長年日記]

_ [Ruby][Rails] LL Ring (Lightweight Language Ring) - Rails チーム参戦記

今年も LL の季節がやってまいりました。 私はこの LL イベントが好きで、2003 年の LL Saturday から、4 回すべて参加して、発表も 2004 年の LL Weekend から 3 回連続で発表しています。

チーム結成まで

今回は、「キミならどう書く」というフレームワーク対決のセッションでに Rails チームの一員として参戦しました。 チームメイトは、はてなの secondlife さんと、ツインスパークの鈴木美保さんですが、それぞれこんな感じで参戦が決まりました。

(Shibuya.js で secondlife さんにお会いして)

か「せかちゃーん、今度 Rails チームで LL に出たいんだけど、誰か手の早い人知らない?」

secondlife「おれおれ」

(日本 Ruby カンファレンス 2006 ふりかえり会にて)

か「高橋さーん、Rails チームのメンバーに(部下の)鈴木美保さんを誘ってもいい?」

高「いいですけど、きっと無理だと思いますよ。ええ。」

か「うぅ。でもまあ誘ってみます。。。」

↑で、実際にメールでお誘いしてみると、なんと OK してもらえた! という次第です。 ちょっと高橋さんに勝った気分です。:)

当日のチームの様子

当日は、朝 11 時頃から 17 時頃まで、ひたすら控え室でのプログラミングでした。 会場の片隅で衆目環視のもとでプログラミングできたら、もっとチームの様子をみなさんに感じていただけたのになぁというのがちょっと残念でした。

今回の対決のテーマは「タグがつけられる家計簿」です。 当日作ってもあらかじめ作っておいてもいいということだったのですが、Rails チームは以下の方針で臨みました。

  • 実際のコーディングは当日だけでやる
  • モデリングや使うライブラリなどはあらかじめ相談しておく

具体的には、「複式簿記にしよう」とか 「タグまわりは acts_as_taggable でできるよね」とか 「gruff プラグインでグラフを出そう」とか 「hatena_flower テーマが家計簿っぽくて可愛い」とか 「Lightbox jojo を使おう」とか 「日付もタグにしちゃえば検索インタフェイスが一つで済むよね」とか、前日までに 3 人の ML で話しあっていました。

当日は、まず db/migrate/* を用意して、それから「コントローラどうしよっか?」「とりあえず scaffold から始める?」「そうだねー」とか言いながらスタートしました。 その後、ペアや三人で、方針を相談したりコーディングしたりコードレビューしたりしながら、どんどん作っていきました。 17 時頃からは、発表の時のスライドを作り始めて、だいたい 17 時半には「もうこれでいいんじゃないかな」という感じになりました。

いざ対決!

いよいよ 18 時からは、リング(本物!)上で対決です。 ちなみに、私たち Rails チームの入場曲は、世界最古の CM ソングで登山電車のテーマ曲である「フニクリ・フニクラ」です。

Rails チームの発表順は一番最後でしたが、他のチームの家計簿もどれも面白く、ちょっとびびりました。 コーディング時間が(Rails チームだけ)今日一日だったこともあり、他のチームのように「多機能」な家計簿ではありませんが、「何でもタグ!」なインタフェイスの面白さや、コーディング量と時間の圧倒的な少なさはアピールできたんじゃないかな、と思います。

なお、スライド(一部加筆)と家計簿のソースは以下に置いておきます。

即席チームが機能した理由

今回のチームは三人とも別の会社に所属していて、お互いに一緒にプログラミングをするのはもちろん初めての経験でした。 しかも、コーディングは当日しかしないというルールで挑んだので、かなり無茶なことのようにも見えますが、当の私たちはなぜか「たぶん大丈夫」という妙な自信がありました。

その理由を考えている時に、ふと野球とサッカーの違いを考えました。 どちらもチームでのスポーツですが、サッカーの方がより戦略の自由度が大きいので、どんなに「できる君」が集まってもそれなりの時間をかけないとチームとして十分に機能しないように思います。 一方、野球は「こうやるものだ」という暗黙のコンセンサスがそれなりにあって、オールスターのようにいきなり集まってすぐに試合になってもちゃんと機能するように思います。

フレームワークというのは、上の例の野球のようなコンセンサスを支えるものですが、特に Rails では「設定よりも規約が重要(Convention over Configuration)」というポリシーがあるように、特にそれが顕著なのだと感じました。

でも、今回のチームがうまくいったのは、もちろんチームメイトお二人のキャラクターとスキルがあってのことです。どうもありがとう!

本日のツッコミ(全3件) [ツッコミを入れる]
_ 田舎者zunda (2006-08-29 12:14)

いーなー。楽しそーだーなー。

_ mukaken(スライム) (2006-08-29 13:30)

先日はお疲れ様でした。
「ドドドド」ってのがうけてましたね。(笑)
僕はRailsチームの優勝だと思いますよ!

_ えとー (2006-08-29 16:24)

コードの量の少なさには驚きました。
現場でコード配布してもらえると読みながら楽しめたんですけどねぇ、設備的に厳しいのかしら。(って、かずひこさんに言うことじゃないすね
その家計簿を使って教材にするとか,さらに開発するとかないんでしょうかー?