リファクタリングとは
リファクタリングとは、プログラムをシンプルにし、メンテナンスをしやすくするための作業のことをいいます。
従来、プログラムは一度作成したらいじってはいけないものとされていました。しかし、機能の追加やユーザーの行動を踏まえてより扱いやすいプログラムに仕上げていくために、次々とプログラムをツギハギしていくと、どんどんとコードが巨大化して、どれがどうふるまうのか理解できない「スパゲッティコード」と呼ばれる複雑怪奇なものができてしまいます。
また、プログラマーにはそれぞれ「クセ」があるので、誰が書くかによっても、書き方に差が出てしまいます。
複数の人が入れ替わり立ち替わりプログラムを書き足している場合、他人の作成したコードを解読したり、手直しをしたりしなければならず、余分な労力を割かなければならなくなります。
こういった事態を避けるため、常日頃からプログラムをシンプル化して、メンテナンスをしやすくするための作業が必要になります。それが「リファクタリング」と呼ばれる作業なのです。
リファクタリング、3つのポイント
リファクタリングに決められたやり方はありませんが、以下の3点をポイントとして進めていくとよいとされています。
・ソースコードをなるべく小さな単位に分割する
・処理のかたまりごとに名前をつける
・同じ処理を重複して記述しない
プログラムのソースコードを、ふるまいごとに小さな単位に分割していきます。小さな単位のほうが、バグを発見しやすくなるからです。
この小さな単位ごとにメソッド名やクラス名などの名前をつけます。適切な名前をつけることで、後から見た人が、そのコードがどういった働きをするのか理解しやすくなります。
コードの中にコメントをつける人もいますが、それよりも適切な名前をつけるほうが、ぱっと見たときに分かりやすくなります。
もっとも重要なのが、3つ目の「同じ処理を重複して記述しない」という点です。
処理が分散して記述されていると、メンテナンスをする際に修正しなければいけない箇所が複数になり、バグが入り込む原因となるからです。
人に理解できるコードを書くことができてこそ優秀なプログラマー
米国の著名なプログラマーであるマーティン・ファウラーは、こんな言葉を残しています。
「どんなプログラマーでもコンピュータに理解できるコードは書ける。しかし人間に理解できるコードは、優秀なプログラマーにしか書けない」。
まさに、リファクタリングの必要性の真理をついた名言といえるでしょう。