試し書き -> Test -> Interface決定

インターフェースを検討するときも、実装のコードをまず考えて試しながらインターフェースを決めることが多いです。要するに、「試し書き」してみてから本番のインターフェース決めるための作業に入ることが多いです。

Javaだとこの試し書きを上手く支援する環境がない。一方、Ruby, Pythonなどには、優れたInteractive Shellがあって一部を簡単に試して実行できる。だからリズムが崩れない。

試し書きのフェーズ(というほど大袈裟なものでもないけれど)があってからインターフェースの切り出しをして、テストコードを書くというほうが経験上効率がよいですし、リズムが崩れないので気持ちよく開発ができる気がします。

Redにしてからコード書くなんてことやってたら、コード忘れちゃいますしね。純粋にはTDDでないかもしれないけれど、多少のラフスケッチはあったほうが俄然効率がよいんじゃないかなぁ思ってます。

テストコードを書くのに多少のタイムラグがあっても、TDDのご利益を享受できるわけですから、それで良いんじゃないかなと思ってます。

Kent Beckもテストコードから書け!なんてことが言いたいわけでもないとは思いますしね。「試し書きしてからのほうが効率がよいです」なんて言っても本にはならないですから、一部は商売のための書いているところもあるんじゃないかななんて思ったりします。

(旧TECHMemoと殆ど同じ内容のエントリだなぁ。。)

See also:
DBE(Development By Example)
http://arton.no-ip.info/diary/20050811.html#p01