リファクタリング

「過去の自分が書いたコードが健全になるように修正するもの」って数分前の自分は過去の自分?自分の場合を思い返してみると、最初に思いつくままにざっと書いて、次に書いたコードをじーっと見て、それから変数名やメソッド名をよりふさわしいものに修正したり、メソッドを抽出したり等々してるなぁ。

テストってインタフェースを確かめるものだから、テストを書いた時点では実装をどうするかまでは必ずしもわかっている必要ないんじゃないかなぁ。で、リファクタリングでインタフェースを変えずに実装を改善すると。

「最初からリファクタリングを前提に設計するっておかしくないかなぁ。」で言われている「設計」というのはインタフェースの設計のこと?一方「リファクタリングで設計を改善」って言う時の「設計」というのは実装の設計のことだよね。