generated at
変換の優先順位説
Transformation Priority Premise。Robert C. Martinが提唱した、テスト駆動開発における仮説。

> これまで見てきたように、TDDの3つの法則に従っていると分かれ道に出会うことがある。分かれ道では、テストをパスさせるためにさまざまな変換を使う。最適な変換を選択する方法はあるのだろうか?あるいは、他の変換よりも常に優れた変換はあるのだろうか?変換に優先順位はあるのだろうか?
> 私はあると信じている。これから紹介しよう。ただし、私の信念はあくまでも説であることを明確にしておきたい。

2013年のブログ記事 https://blog.cleancoder.com/uncle-bob/2013/05/27/TheTransformationPriorityPremise.html 以降、内容は変化してきているが、『Clean Craftsmanship 規律、基準、倫理』のバージョンは以下。

1. { } -> Nil
2. Nil -> 固定値
3. 固定値 -> 変数
4. 無条件 -> 選択
5. 値 -> リスト
6. 選択 -> 反復
7. 文 -> 再帰
8. 値 -> 変異値

> 賢明な読者は気づいたかもしれないが、指定された順番で変換していくと、関数型プログラミングのスタイルで実装することになる。

参考