[TDD] TDD in Actionに参加してきた

久々にブログ書く。
筆無精は中々直りませんね。


7/22に開催されたTDD in Actionに参加してきました。
TDDBCに近いイベントですが、実際にTDDを実践している人が、
他の人のTDDを、もっとしっかり見てみようぜ、って形をメインにしています。


会場は、青山のオラクル。
いつもお世話になっております。


なんか前日のイベントの余りか何かで、
朝から大量の発泡酒と、ありえない量のハッピーターンが支給されるという、
大分カオスな勉強会になってましたw
朝到着した瞬間から酒の匂いしかしねえ・・・。


TDDBCと同様、基本はペアプロで進めていきますが、
TDD要素があれば、基本何やっても自由というゆるふわルール。


私はそこそこ基本的にやってたつもりですが、
普段からあんまりテストファーストにこだわってないので、
まあ、リモートにpushする前にテスト揃ってりゃいいよねぐらいの感じでやってました。


今回、参加して良かったのは、主催のkyon_mmさん、pocketberserkerさんによるデモで、
課題のTDDに入る前に、ドメイン領域の定義やテスト設計から開発に入るまでの流れが見れたこと。
科学的にソフトウェアテストの必要性、分析を検討する知識は、
まだ全然勉強できていないので、良い刺激になりました。


終盤に、スタッフと一緒にhaskellのdoctestによるTDDを眺めていましたが、かなりきつい感じでした。
個人的にはhaskellでコード書く場合は、こういう形でのTDDは向かないような気がしました。
関数の型イメージを考えて、コンパイル通る程度に書いてから、doctests書かないと、
同時に型を考えなきゃいけない場所が、プロダクションコードとdoctestsの両方に増えるので、
私の脳ではかなり厳しい。

懇親会

懇親会でtomy_kairaさんが、ScalaのSpecs2はテスティングフレームワークとしては、
かなり問題あるんじゃないか、というLTをしてました。
そこから派生したテスティングフレームワークのあり方の話や、
cucumberの保証するものと、活用ポイントはどこにあるのか、という話は、
かなり熱い展開で、非常に勉強になりました。


後、きょんさんから#なごやこわいの裏側を聞かせてもらいました。
今回のイベントが、もし名古屋で行われていたら、
3人ぐらい、ハンドアックスで死んでたかもしれませんw

## 成果
今回ペアプロではgithubにコードを置いて、マシンを入れ替えながら開発していました。
コードはここに置いてあります。
https://github.com/joker1007/tddact01


コードの使われ方を意識した議論が出来たのは、今回のペアプロで良かった点でした。
(実際に使いやすいインターフェースにできたわけじゃないけど・・・)