いきなりジャンプするのは
今日会社のメンバーにDocTestを使ってもらったんですが、最初はなかなか感覚をつかんでもらえなくて、あれやこれやと説明しながら使ってもらった結果、すげー感動してもらいました。
どうも今までTDD関係の書籍等をみてもぴんとこなかったというか、それをやると自分のためになるという直接的な感覚がもてなかったようだ。
私の今日の感想としては、やっぱりいろいろ下地をつくらんと、DocTestはばりばり使ってもらえるってことにはならないかなと思ってみたり。
TDDとは・・・ということより以下のように説明した方がさらっと受け入れてもらえるかもしれない。
- クラスを作ったときにそいつが実際どういう動きをするかを他のものと組み合わせてみるまでわからないってことは今までしてなかったよね?(ま、まさか・・・)
- 他のものと組み合わせる前にそれを呼ぶための小さなスクリプトを作って、コマンドラインかもしくはブラウザからたたいてみてたよね?(ま、まさか・・・)
- それをいちいちクラスを作るたびに使い捨ての小さなスクリプトをつくるよりも、DocTestを使えばそのクラス自身のコメントへの振る舞いの記述がその小さなスクリプトの代わりになるよ。
- コメントに書き込むけど、それは覚書ではなくて、実際にDocTestが実行するから、本当にこの引数を渡して思うとおりに動くのか?という不安があるなら、徹底的に振る舞いをコメントにかいちゃえ。
- で、不安がなくなったらそのクラスはひとまずできたってこと。
- しかも、そこでPHPDocumentorでAPIリファレンスを出力すれば、明日から休みをとっても、次の人がそれをみて作業の続きができるよ
- 追記(02:28)
- 最後の項目はジャンプしすぎか。DocTestを使ってテストを書いていくと、1つ1つのメソッドを小さくしないとテストを作りにくくなるから、メソッド分割⇒クラス分割という動きが発生して、それぞれのものの見通しはよくなっていくはずで、そうなったら、明日から休んでも・・・ってなるんじゃないかと妄想してみたり・・・
こういう理論にのっとってますってことをつらつらというよりも、どんな風に役に立つのさ?ってことがしりたいわけで、プログラマーとしては「楽が出来るの?」「楽しくなるの?」ってのにきちんと答えが出せれば、それほどのジャンプにはならないんじゃないかなと思ったしだいですが、どうなんでしょうかね。
#あんなことを書いたのに、このDocTestがコロニー落としになってないことを祈る・・・