TDD Boot Camp 福岡 2 日目

朝ごはんをぎりぎりで食べて、直接会場に。


当日の発表資料はこちらです。


秋猫さん (id:Akineko) の発表の中で SQL で FizzBuzz やるとか SQL で bf 処理系作るとかそんなの絶対おかしいよ!
て言われた気がしますけど全然おかしくないよ普通だよ!


お昼ご飯を食べて、午後からは新しい仕様を言い渡しました。

  1. Web サービスからつぶやきを取ってきて、それを判別
  2. 非公式 RT も判別
  3. 現在の時刻前後 30 分の時間帯のつぶやきの判別
    • これに伴い入力形式を変更
    • 「yyyy/MM/dd HH:mm:ss\tScreenName\tBody」

この変更は結構厳しかったみたいです。いろんなところから悲鳴の声が。
三番目のお題のために和田さん (id:t-wada) にも Web サービス側の仕様変更をお願いしたのですが、さくっと対応してくれました。


それと、今日は Git を使うということで、全てのペアを見て回っていました。
ただ、AsakusaSatellite チームが入っている 3 ペアは Git の使い方まで見なくても大丈夫だろうと思って油断してたら、みずぴーさん (id:mzp) branch 切ってなかったという・・・
Git-Hooks を使って id/チケット番号で branch 切ると、コミットメッセージにチケット番号が追加されるので、トピックブランチを rebase した後からでも「ここからここまでがこのトピックブランチでの作業」というのがわかりやすくていい感じなのです。
branch 切りませう!
Git-Hooks についてはみずぴーさんのブログエントリをどうぞ。

Git+Redmineな人におすすめのフックスクリプト集 - みずぴー日記


結構進み具合の早いペアがいたので、急遽チケットを増やしました。

  1. URL も判別
  2. 短縮 URL の展開

この仕様追加は、どちらも秋猫さん (id:Akineko) 発案です。無慈悲な感じがとても素敵です。


全てのペアをまわって見て印象的だったのが、Java ペアと、OCaml ペアです。

Tweet クラスの導入

入力形式が変更になったタイミングで Tweet クラスを導入した Java のペアがいました。
その設計判断をしたときのことをレビューで

フィールドが文字列 2 つならまだ耐えることができたけど、日付が入ってきたので導入した。

という風に言っていました。
文字列ではなく何かほかの形式を使う、というペアはここ以外にもいました。
OCaml チームはかなり最初のほうからレコードを導入していましたし、文字列ではなくデータ構造を用意する、というペアはいました。
でも Java (や C#VB) はクラスを作るのが面倒なんですよね。
その「面倒さ」を乗り越えてでもクラスを作るタイミングとして、2 つではなく 3 つ目というのは非常に素晴らしかったと思います。


また、このペアはコミットの数もおそらく一番多かったです。
ペア交代のタイミングでコミットというのは、なかなかに面白いやり方だと思いました。

アナログな手法

OCaml ペアでノートを活用しているペアがありました。
チケットよりも細かい粒度のタスクを TODO リストとして紙に書く、というのは自分もよくするのですが、今回見た限りではこのペアが一番アナログな手法を活用していました。
bleis 賞はこのペアに贈りましたが、決め手はそのあたりです。


以上で TDD Boot Camp 福岡は終了しましたが、それから打ち上げがあったので終電とか考えない感じで参加してきました。
席の並びはこんな感じ。

壁  mzp    suer
壁机机机机机机机机
壁 bleis ukstudio
 壁壁壁壁

OCaml チームに囲まれている・・・!


全体を通して、疲れたけどとても楽しく、また色々な気づきもあって有意義な時間を過ごせました。
なかやんさん (id:pocketberserker) をはじめ、TDD Boot Camp 福岡にかかわったすべての人に感謝です!