『テスト駆動開発』を読んだ

去年末から読み始めていた『テスト駆動開発』を読み終えました。原書は古いとはいえとても新鮮な体験が出来ていい本でした。

情報

Kent BeckによるTest-Driven Development by Example (2003) を和田卓人氏が訳した新訳版。TDDを忠実に実践しようとしているわけではないですが、ユニットテストを書く仕事を任せられており、参考になりそうなので読み始めました。

第I部、第II部で実際にTDDを実践しながら少しずつコードを書いていく例を取り、第III部でベストプラクティスを学ぶ本となっています。また、新訳版では和田卓人氏によるテスト駆動開発の現在について書かれた付録Cが追加されています。

感想

和田卓人氏もおっしゃってますが、写経をしながら第I部、第II部を読み進めることで本領を発揮する本だと思います。コードとは最終的なアウトプットが評価されるものではありますが、それが生まれる過程を追体験できるからです。

第I部、第II部で実践したあとでベストプラクティスを学ぶという構成がいいと思いました。やっぱ手を動かさないとプログラミングは身につかないものです。

あとは元はJavaPythonで書かれた例コードをPHPで写経しながら書いたのですが、元々がJavaプログラマーだったせいかPHPだとどう書けばいいか解らない場面も多く、特にキャストや、引数・戻り値の型指定など、動的型付けの部分に慣れていないせいで戸惑ったもののPHPそのものの勉強になりました。

もはや固有名詞となった「付録C」にも書かれていますが、教条主義的になってしまった面もあるTDDの目的とはそもそも、より良く設計されたコードを生み出すため、小さく自信を持って進めるための手段でしかないということが大事だと思います。TDDそのものが目的となってはいけないのだということでしょう。これはどんなプログラミング手法にも言えるのではないかと思います。よりよい成果物を生み出せるよう、最適な手法を取捨選択できるようになりたいと思いました。

リンク