変数名の変更
マーチン ファウラー(著)リファクタリングでは名言されていませんが、分かりづらい変数名を適切な名前に変更することは、とても有効なリファクタリングだと思います。
たとえばint型配列の中に対象の値が含まれるかを調べるメソッドが、以下のように定義されていたとします。
private bool ContainsTargetValue(int[] values, int targetValue)
{
bool flag = false;
for (int i = 0; i < values.Length; i++)
{
if (values[i] == targetValue)
{
flag = true;
}
}
return flag;
}
メソッドがこのくらいの長さであれば、「flag」が何を意味するのかが感覚的に分かりますが、メソッドがもっと長かったり複雑だったりすると何を意味するのかが分かりません。
この場合は「flag」という変数名を「foundTargetValue」(対象の値を見つけた)などに変えてあげると、後からコードを読む人が変数の意味を誤解することがなくなります。
private bool ContainsTargetValue(int[] values, int targetValue)
{
bool foundTargetValue = false;
for (int i = 0; i < values.Length; i++)
{
if (values[i] == targetValue)
{
foundTargetValue = true;
}
}
return foundTargetValue;
}
このコードはまだリファクタリングできますが、それは次回に説明いたします。
コメントはまだありません。