変換の優先順位説
これまで見てきたように、TDDの3つの法則に従っていると分かれ道に出会うことがある。分かれ道では、テストをパスさせるためにさまざまな変換を使う。最適な変換を選択する方法はあるのだろうか?あるいは、他の変換よりも常に優れた変換はあるのだろうか?変換に優先順位はあるのだろうか?
私はあると信じている。これから紹介しよう。ただし、私の信念はあくまでも説であることを明確にしておきたい。
1. { } -> Nil
2. Nil -> 固定値
3. 固定値 -> 変数
4. 無条件 -> 選択
5. 値 -> リスト
6. 選択 -> 反復
7. 文 -> 再帰
8. 値 -> 変異値
賢明な読者は気づいたかもしれないが、指定された順番で変換していくと、関数型プログラミングのスタイルで実装することになる。 参考