2007-02-17

親愛なるジョン(デバッガ)へ

私たち, もう 20 年も一緒にいるのね. もちろんあなたは一つだけじゃなかったわ. デバッガは何度も言葉が変わるもの. 最初は Pascal だった. 次は C, C++. 今は Java. あたりまえだけれど. (注:著者はSunの人です.) でも私たちの関係はずっと変わらなかった. 私の人生で, あなたはいつも同じ場所にいた. 私が辛いバグをとり, コードが太陽(sun)みたいに輝くのをあなたは支えてくれた. でね, そろそろ私たちが一緒に過ごす時間のことを考え直そうと思うの.

何時間もずっとブレークポイントで過ごしたわよね. スタックの中味に悩んで, 朝までずっと喋ってたっけ. それに踊りもした. どれだけのメソッドやコードに踏みこみ(step into), 飛び越えた(step over)ことか. 思い返せば, 他にあなたほど私の心に留まったツールなんてない. なのにここ数年, だんだんとあなたと一緒の時間が減ってきたわ. 何が言いたいかわかる? 私もう, テストケースと暮らしているの.

テスト駆動開発のおかげで, 私はデバッガを必要としなくなった. 全然要らないってわけじゃないの. でもほとんど使っていない自分に気付いた. だって, コードを書く前にテストを書けば, デバッグするものなんてなくなるでしょう. コードを書くときにはもう検証用のテストケースがあるんだから. 小さな反復のなか, 変更をしたらいつもこまめにテストを動かせば, バグはすぐに見付かるもの. 早くにバグをみつけられないと, 開発サイクルの後半で問題追跡に大変な思いをすることになるわ. JUnit や彼の一族(Cactus, HTTPUnit など)がいれば, 単体テストは自動化できるし, 繰り返し動かせる. TDD で開発するようになるほど, デバッガを使うことはなくなるのよ. 私はそれで幸せ. あなたのことをいくら愛していても, グリーン・バーを見る方が楽しいから.

次はいつ会えるかわからないけれど, こんど会えたらきっと, 本当になすべきことができるはず. あなたのキーストローク, ずっと忘れないから. ね.