リファクタリング


あまりなじみの言葉かもしれませんが、リファクタリングというプログラミングについての考え方があります。

本の説明を見ずに自分の理解で書くと、一度書いた正しく動作するコードを、可読性と実用性の向上を狙って書き直すというものです。

正しく動くものを書き換えるのはリスクがあります。
特にプロジェクトの終盤は、怖いのでできるだけいじらないようにしています。
リファクタリングにも当然時間がかかりますし。

ただ、問題は次に使いまわす時やバグがあったとき。
汚いコードは大変です。
その際、リファクタリングで大幅に時間を短縮できる可能性があります。
(※自分は現在、主にこういったタイミングでリファクタリングをしています)
つまりリファクタリングをするコストとしないコストを考えて使い分けるとよいということです。

すべての方法がそうだとは思いますが相性はあるかと思います。
自分はキータイピングも遅いし、ミスも多い人間なので、できるだけ同じコードは書きたくありません。
しかも便利に使いまわせることに喜びを感じます。
こういう人間とリファクタリングは相性が良さそうです。

先日も「お前が以前書いたプログラムを使おうとしたけど、だめだめだった」
と、先輩に痛い指摘を受けました。

数年前に書いた自分のコードを見るのは嫌です。
それが実力なのですが。
当時はリファクタリングを知らなかったので、今なら駆使してもう少しましなコードを書けるかもしれません。

リファクタリングするようになって、少しずつ使えるコードが増えてきました。
それにコードの意図も整理されるようで、プログラムについて質問されてもすぐに回答できるようになれたというメリットもありました。

もちろん、最初から早く綺麗に正しく書ければいいんですけれどね。


てんと