リファクタリングとリメイクのあいだ
リファクタリングは、乱暴に言ってしまうと「大改造!!劇的ビフォーアフター」だよ、とかよく説明をします。
多分そんなに間違ってないんじゃないかなぁ。
で、安心したリファクタのためにはやはりテストが重要で。
なのでもしテストコードがないコードをリファクタする時は、「まず先にテストコードを、ある程度しっかり書いておく」と、安全に安心にリファクタをする事ができると思うんですね。
まぁ勿論、テストを書いている時点で「通常は気づかない、微細な(仕様を含む)バグ」が新たに見つかる事もあり、それはそれで「リファクタをして良かったよねぇ」のONE PIECEになるのではないか、と思います。
………で。
リファクタと称される案件にお会いした時に、時々、ごくまれに、僅かながら、全くないとは言えない程度に極小の確率で*1、遭遇するのが。
・リファクタをしたい
・テストを書きたい
・テストを書くために「現在の仕様」を理解したい
・現在の仕様が「誰にもわからない」
・だからといって「動いているコードが正解」とも言いにくいほどにあちこちに綻びがある*2
……さて。リファクタとは?
多分ここが分岐点で。
・多少綻びがあるにしても「仕様」がある程度明らかであるなら、リファクタリング
・そもそも「仕様ってなに?」状態だと、リファクタにはなり得ず、結果的にリメイク
ってのが、なんとなく「リファクタリングとリメイクのあいだ」なんじゃないかなぁ、と。
…………書いてて血ぃ吐きそうですが orz