PHPで「テスト駆動開発」の写経をしました
2023/03/29
2024/02/25
PHP勉強会を観ていたら、「テスト駆動開発」の写経する話があり、学びが多そうだったので、自分でも写経してみました。
第1部 多国通貨
php-class-diagramを使って各章完了時のソースコードからクラス図を出力してみました。機能追加やリファクタリングの経緯が可視化されて興味深いです。
第1章 仮実装
第2章 明白な実装
第3章 三角測量
第4章 意図を語るテスト
第5章 原則をあえて破るとき
第6章 テスト不足に気づいたら
第7章 疑念をテストに翻訳する
第8章 実装を隠す
第9章 歩幅の調整
第10章 テストに聞いてみる
第11章 不要になったら消す
第12章 設計とメタファー
第13章 実装を導くテスト
第14章 学習用テストと回帰テスト
PHPでは連想配列のキーにObjectを指定することができなかったので、RateResolverを追加してMapの替わりとしました。
第15章 テスト任せとコンパイラ任せ
第16章 将来の読み手を考えたテスト
書籍ではPyhotnで記述される第2部 xUnit もPHPで写経してみました。
まとめ
最近は仕事でもテストコードを書く部分は、TDDしてるつもりでしたが、写経した後は、テスト実行回数も増えて、レッド→グリーン→リファクタリングのサイクルが短かくなりました。意識的にプログラミング中のストレスをコントロールできるようになったと言えるのかもしれません。