テストでなくて設計でなくて

木、金、土と3日連続角谷さんのRuby札幌のプレゼン資料を使ってプレゼンしました。ほんといい資料ですね。

で、エライ人が作ったものを使いながらプレゼンをするってのはすごく勉強になるってことが実感できました。ここを読まれている皆さん、自分の会社の人向けに角谷さんの資料を使って「テストクラブへようこそ」ってやってみてください。TDDってなんだ?ってのが聞く人以上に自分の理解が深まりますよ。

で、資料を使ってプレゼンをしていった結果、ひとつの考えが浮かんできました。

  • TDDを説明する際に「テスト」という言葉が問題だから、普通の人の考えている「テスト」ではなくて、先に振る舞いを決めるという「設計」をしてるんだよと説明してるが、もしかして普通の開発者はプログラミングの後に来る「テスト」は苦痛だけど、それと変わらないくらいプログラミングの前にやる「設計」も苦痛なんではないか?

だめーなプログラムって何でできるかというと、ろくに設計もせずにいきなり手を動かしちゃって、テストもせずに実戦投入して・・・ってことですよね。

PHP勉強会で設計重要という話を私がしたときに、「設計って普通の人はしてないですよね」って話が出たんですが、確かに言われたとおりのものしか作ってない人って思っている以上にいるかもしれん。

ということは、この「設計」という言葉も普通の人が聞いたときには「外部設計」「詳細設計」のようなイメージがあって、それはアーキテクト的な人がやることで、自分が見ている狭いスコープの振る舞いを自分で決める部分だけでも「設計」なんだよってのは伝わらないかもなぁって感じました。

なので、角谷さんの資料で言えば、「Think」くらいがちょうどいいかもしれません。「Think」⇒「Red」⇒「Green」⇒「Refactor」のリズムってので「おー」と腑に落ちた方がこの3日間で結構いたような感触がありましたから。

ここまで書いてまだ角谷さんのプレゼンをみてないという奇特なあなた、是非みてください。必見です。

http://kakutani.com/20080219.html#p02