TL;DR

  • 大きな設計変更ではなく、その前にある小さな変更から手を付け、2 つのサブクラスのコンストラクタを親クラスに引き上げた。
  • TDD のステップの大きさ(歩幅)に正解はなく、窮屈なら大きく、大きすぎるなら小さくすればよい。

内容

本章でやったこと

大きな設計変更に取りかかる前に、その手前の小さな変更に着手した。

  1. 2 つのサブクラスのコンストラクタで異なる部分を、呼び出し側(Factory Method)に移して、コンストラクタどうしを近づけた
  2. Franc に行ったリファクタリングを、Dollar には大きなステップで一気に適用した
  3. まったく同じ内容になった 2 つのコンストラクタを、親クラスに引き上げた(Pull Up Method)

次は、残った times メソッドを削除する。

作業中に気づいた修正をどうするか

教科書的な答えは、「今の作業を止めないために、修正は後回しにすべき」である。しかし Kent Beck は次のように考えている。

ちょっとした割り込み(修正)を楽しもう。ただし、ちょっとしたものに限る

割り込みにさらに割り込むことはしない

歩幅の調整

TDD では、必ずしも細かいステップ(歩幅)で進む必要はない。窮屈だと感じるならステップを大きくし、大きすぎると感じるなら小さくすればよい。ステップの大きさを決めるのは開発者(あるいは AI エージェント)であり、正しいステップの大きさというものは存在しない。

キーワード

自分の理解

ステップの大きさを適切に調整するには、経験が必要になりそうである。