この土曜日、8/25に開催されたTDD Boot Camp 岡山 1.0(http://kokucheese.com/event/index/44511/)に参加してきました。
今回の立場としては、主催者の一員*1兼、スタッフ兼、TA兼、一受講者…というちょっと謎な立場でしたが(^^;
和田さんの講演から始まり、最後のクロージングまで、非常に濃くて楽しめ、勉強になる会でした。
私が持ち帰ったもの(の一つ)
私が特に得ることができて良かった事は、「TDDの文脈においてprivateのテストコードは不要」という事について、C#チームのところにいた皆さんとの議論や和田さんからのお話により、はっきりとした根拠を確認できたことです。
このことについて私が理解した内容を端的に。
- TDDという文脈ではprivateのテストは不要
- TDDはまずpublicでテストができているはず
- 一つの機能end to endでまずテストを書き、実装が終わった時には正常動作が確認されている
- privateはその過程で生まれているので、すでにテストは包含されている
- privateへのテストを書くとリファクタリングの邪魔になる
- リファクタリング時に気軽にプライベートメソッドを変更しにくくなる
和田さんの「正面玄関からテストしよう」という言葉がともてしっくりくると思いました。
ただし、privateに対するテストはTDDの文脈以外では有効なこともある、とも思っています。
例えば、
- 既に設計が出来上がっていて、設計を変更する権限が自分に無い時
- レガシーコードと戦う際の道具として
等です
もちろんそのほかにも多くの事(JSのJasmineがすごく楽しそうとか!)を得ることができました。ひょっとしたr、あおなか一杯に近い状態かもしれないくらい。消化不良を起こさないように、ゆっくりと時間をかけてでも、飲み込んでいこうと思います。
皆様に感謝
最後になりますが、講師として特に遠方よりご参加いただき多方面でご協力いただいた多くの方々、また参加してイベントを盛り上げてくださった参加者の皆様、岡山スタッフの皆様、ありがとうございました。私自身、本イベントの開催に携われる機会を得れたことに感謝いたします。
P.S.
当日の様子はtogetterにまとめられています。
P.S.その2
あ、懇親会LTでブッコミましたが、当日紹介されていた書籍を覚えている範囲でリストアップ(http://d.hatena.ne.jp/kiyokura/20120825/p1)していますので(以下略
*1:…の割には事前準備をあまりお手伝いできておらず申し訳なかったのですが…