Feedforce Developer Blog

フィードフォース開発者ブログ

『テスト駆動開発』読んでます

こんにちは、id:kano-e です。

日曜日に『テスト駆動開発』が届いたので読んでます。

テスト駆動開発

テスト駆動開発

旧版も持っているのですが、新訳だし、付録もあるし、これは買って読み直したら良いはず!と思って購入。
まだ2章までしか読んでないのですが、前に読んだ時(かれこれ10年くらい前ですが)よりもずっと読みやすい気がしてます。
さすがに10年前のことなので自分の知識や経験の差もだいぶんとあるかと思いますが、やっぱり新訳の力も大きいのかなと思っているところです。

『テスト駆動開発』のまえがきに、

テスト駆動開発は、プログラミング中の不安をコントロールする手法だ。ここでは「不安」を悪い意味で使っているのではない(我々は赤ちゃんではないからね)。「これは困難な問題なので、最初から全てを見通せるわけではない」という真っ当な感覚のことだ。

と書いてあるのは本当にその通りで、「最初から全てを見通せるわけではない」ものを最初から全部やろうとすると、どうしてもうまくいかなくなって途中で止まってしまうんですよね。
困難な問題の中から最初の一手を見つけて(自分の場合、それは大体クラス名やメソッド名を決めて、メソッドを呼び出すだけのテストを書くところからなのだけれど)素早く動きだすと、その中で問題が徐々に姿を表し、気付けば見通せなかった問題が見えるようになってる。TDDをやっていると、その間、ほとんど手が止まることがないのでストレスなくコードが書ける気がします。
手があまり止まらないっていうのは本当で、TDDやってると悩みの粒度がとても細かいので、手を止めて悩む時間があまりないなって思います。 本当にdrivenな感じで、自分で書いたテストに駆動させられて気持ちよく走ってる感じ。

フィードフォース社内では基本的にテストを書く文化がありますが、これを機にみんなで改めてTDDを学びなおすのも楽しいかなーとか読みながら考えてます。
それら学びなおしの内容もいずれはブログ記事になるかもしれませんが、まずは『テスト駆動開発』良いよ!っていう共有だけ。