『リーダブルコード』 第9章 変数と読みやすさ

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

変数を削除する

役に立たない一時変数

  • 複雑な式を分割していない
  • より明確になっていない
  • 重複コードの削除になっていない

中間結果を削除する

配列から値を削除するJavaScript関数の例:

var remove_one = function(array, value_to_remove) {
    var index_to_remove = null;
    for (var i = 0; i < array.length; i += 1) {
        if (array[i] === value_to_remove) {
            index_to_remove = i;
            break;
        }
    }
    if (index_to_remove !== null) {
        array.splice(index_to_remove, 1);
    }
};

index_to_removeという変数は中間結果を保持するためにだけ使っている。index_to_removeを削除すると、以下のようにすっきりさせることができる。

var remove_one = function(array, value_to_remove) {
    for (var i = 0; i < array.length; i += 1) {
        if (array[i] === value_to_remove) {
            array.splice(i, 1);
            return;
        }
    }
};

制御フロー変数を削除する

以下の例のdoneのような変数は、プログラムの実行を制御するためだけの変数(制御フロー変数)であり、実際のプログラムに関係のあるデータは含まれていない。うまくプログラムすれば、制御フロー変数は削除することができる。

boolean done = false;
while (/* 条件 */ && !done) {
  ...
  if (...) {
      done = true;
      continue;
   }
}

変数のスコープを縮める

鍵となる考え:変数のことが見えるコード行数をできるだけ減らす。

スコープを縮めるための具体的な実装は、言語により異なる。JavaSctiptなら『JavaScript: The Good Parts』や『JavaScriptパターン』が参考になる。PHPでWebアプリを作るなら、MVCフレームワークを使い、ファットコントローラーを避け、メソッドを細かく分割するようにすれば個々の変数のスコープは小さくなる。

変数は一度だけ書き込む

鍵となる考え:変数を操作する場所が増えると、現在値の判断が難しくなる。

変数の値は一度設定したら書き換えないようにする。言語が定数やイミュータブルな値をサポートしている場合は、必要に応じてこれらを使用する。

コメントを残す

コメントを残す