突っ走り書き

見せるほどのものでは..

テスト駆動開発のルールは2つだけ

普段からTDDでコーディングされている方にとっては当然のことだと思いますが,自分への確認と戒めの意味でまとめてみました.

TDDでコードを書き出す理由は2つだけです.

1: リファクタリングのため

「グリーン」だけど「スパゲッティな」コードを改善する場合です.
できるだけ綺麗なコードを目指しましょう.

2: レッドを抜け出すため

レッドからグリーンを目指してコードを書き改める(or 書き出す)場合です.

2-a: 新規コードを書き出す

新たにコードを書き始めるときはこれに当てはまります.
実現したい機能をテストで表してコーディングに取り掛かります.
典型的な Test first !

2-b: バクの修正

バグの修正もこれに当てはまります.
バグが原因でコケるテストを作り,グリーンを目指します.
面倒に感じるときもありますが,オススメのやり方です.
バグの歴史をテストで記録しておくことで,それ以降の精神衛生が保たれます.

雑談その1: ルールは大事だけど

ごちゃごちゃ書きましたが,要は Test first です.
ただ,このルールを完全に守ろうとするのは最善だとは思いません.
TDD原理主義は逆効果なので,もっと柔軟にプログラミングしましょう.
例えば,Java であれば hashCode/equals/toString/getter/setter をいちいちテストする必要はあまり感じません.

雑談その2: TDD = プログラマ精神安定剤

もし,TDD がなかったら(もっと多くの)プログラマ心が折れると思います.
リファクタリングの度に,バグの不安に駆られるなんてイヤです(よね?).
そういう意味で,TDDはプログラマ精神安定剤です.

元気なときには飲むのが面倒なのも薬と似ています.
プロジェクトが健康なうちに TDD という薬を飲んでおけば,技術的にも精神的にも happy な生活ができるはずです.