変数名の変更

マーチン ファウラー(著)リファクタリングでは名言されていませんが、分かりづらい変数名を適切な名前に変更することは、とても有効なリファクタリングだと思います。
 
たとえば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;
    }
 
このコードはまだリファクタリングできますが、それは次回に説明いたします。

g h T
 2,412 Total Views

ADVERTISING

駅チカ!ホテル検索
全国の駅や目的地近くの宿泊施設を検索し予約することができます。最寄駅沿線からもホテルを検索できるので、アクセスのよいホテルを予約することが可能です。
  1. コメントはまだありません。

  1. トラックバックはまだありません。