gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

リファクタリングとリメイクのあいだ

リファクタリングは、乱暴に言ってしまうと「大改造!!劇的ビフォーアフター」だよ、とかよく説明をします。
多分そんなに間違ってないんじゃないかなぁ。

で、安心したリファクタのためにはやはりテストが重要で。
なのでもしテストコードがないコードをリファクタする時は、「まず先にテストコードを、ある程度しっかり書いておく」と、安全に安心にリファクタをする事ができると思うんですね。

まぁ勿論、テストを書いている時点で「通常は気づかない、微細な(仕様を含む)バグ」が新たに見つかる事もあり、それはそれで「リファクタをして良かったよねぇ」のONE PIECEになるのではないか、と思います。

………で。
リファクタと称される案件にお会いした時に、時々、ごくまれに、僅かながら、全くないとは言えない程度に極小の確率で*1、遭遇するのが。
・リファクタをしたい
・テストを書きたい
・テストを書くために「現在の仕様」を理解したい
・現在の仕様が「誰にもわからない」
・だからといって「動いているコードが正解」とも言いにくいほどにあちこちに綻びがある*2

……さて。リファクタとは?

多分ここが分岐点で。
・多少綻びがあるにしても「仕様」がある程度明らかであるなら、リファクタリング
・そもそも「仕様ってなに?」状態だと、リファクタにはなり得ず、結果的にリメイク

ってのが、なんとなく「リファクタリングとリメイクのあいだ」なんじゃないかなぁ、と。

…………書いてて血ぃ吐きそうですが orz

*1:つまりしょっちゅう

*2:契約を管理するシステムで「入力した情報(PDF出力では使っている)の半分以上がDBに保存されず揮発する」システムが正常だとは、あんまり思えないんですよねぇ……(実話 orz)