岡山で2回目のTDD BootCampが開催されました。
前回は一般参加で参加したのですが、今回はTAとして参加しました。
実はPHPのTAをお願いしますと言われてたので、PHPUnitの練習を少ししていたのですが、開催数日前に参加者にPHPの方がいないことがわかったのでRubyのTAになりました。
全体的な流れとしては、
- 開催挨拶
- スタッフ紹介
- @t_wadaさんの講演
- TDDデモ(Scalaで)
- ペアプロでTDD
- 昼食
- 質疑応答
- ペアプロでTDD
- コードレビュー
- 発表
- 質疑応答
- クロージング
という感じでした。
TDDとは何か、なぜTDDをするのか、いかにしてTDDを現場に持ち込むかという話と、勉強するための本の紹介があったのですが、ピアソンエデュケーション
が日本で書籍販売をやめる事になったので、絶版になっている本がかなりありました。なんとかこういう良書は達人出版会とかで販売してほしいものですねぇ。
TAだったのですが、Rubyの参加者が4人に対してTAが3人だったので、2人でペアプロ+TA、1人+TAでペアプロ、1人+TAでペアプロの3組に分かれました。キーボードの問題で(ぇ…)、できないという人もいたので、とりあえずそれでうまくいくように分かれました。ペアプロするにしても、そういう問題があるんすねぇ…。
たしかにキーボードとエディタで困るのは嫌なので、そこはなんとかしていないとダメかもしれません。自分のペアも、相手の人はVim派で、僕がVimを使えないので自分のマシンのIntelliJにしてもらいました。(エディタ戦争したくないのですが、僕はVimもEmacsも慣れるまで耐えられないのでIDE好きです。特にJetBrains製品好きです。)
最初はRSpecの使い方を知らないという事だったので、describe, context, before, it, its, shouldなどの説明をしました。expectの文法は自分があんまり使った事がないので特にしませんでした。まぁ使えるけど個人的にはshouldのほうがわかりやすい気がするんですよね…。でもこれからはexpectで書いていくべきなんだろうか…。
課題は自動販売機を作るという恒例のやつなのですが、要件を確認した後、相手の方が最初に実装を書いてしまいそうだったので、止めて、まずテストを書いてもらいました。TDDですからね。Red, Green, Refactorの順です。TDDって意識しないとコーディングに集中しすぎて実装に取りかかってしまうのが問題だなと自分自身思っていたのですが、他人が同じ事をしようとすると止められるのに自分だと気づかないんすよね…。やっぱりペアプロは気づかされること多いなと思いました。
ペアプロが終わってから、他のチームと一緒にコードレビューをしたのですが、やっぱり色んな書き方というかアプローチがあって、面白かったです。個人的には実装にこだわりすぎるのもどうなんだ?という気がしていて、課題をがんがん進めていくほうが気付きは多いんじゃないかなーと思っているのですが、どっちがいいのかはわからないですね。
あとはどうやって今日学んだことを現場に取り込んでいくかという話を聞いて、クロージング。
懇親会は岡山での定番である、座・スタジアムでした。
参加者が22名だったので、いつもと違って広々とした会場で、いつもより和やかムードでLT大会になった感じでした。
ネタの人、ガチの人、前にやったLTを再度やったりする人と様々でしたが、とても楽しい時間でした!
そしてToggeterでのまとめはこちらです。
次回あるとしたら次はKotlinのTAとして参加したいものです!