リファクタリングについて

概要

リファクタリングとは、外から見た動作を変えずにコードを変更して、その中身をきれいに保つことである。
可読性や保守性を高めるために必要なことである。

概説

例えば以下のコードが存在するとする。
by Dart

void keisan(int a, int b) {
  var r = 0;
  for (var e = 0; e < 10; e++) e % 2 == 0 ? r = r + a : r = r - b;
  print(r);
}

このコードは最終的に何を出力するのかわかるだろうか
答えは

-5

である。

このような変数名がめちゃくちゃであったり、メソッド名で動作がわからなかったりするものは可読性が低いといえる。

上記のコードをリファクタするなら、きちんとインデントをそろえて、変数名は一字をなるべく避けるようにする。
それだけでも少しは見やすくなる。

またコメント文などを入れるとなおさら良い。

必要な要素

リファクタリングで行ったほうが良いリストを例示する。

  • 変数名
  • 関数名
  • クラス名
  • 冗長な処理をしているか
  • 無駄な最適化をしていないか
  • コメント文が適切に書かれていないか
  • コードを1行にまとめて書こうとしていないか
    • 場合によるが一般的に三項演算子などは避けたほうが良いとされている。
  • クラス設計が適切がどうか
  • 過度な継承をしていないか
  • 一つのクラスや関数に複数の役割を持たせていないか

などである。
変数名や関数名を適切に設定するだけでもかなり読みやすくなる場合もある。

曖昧さ回避

MakeGoodVariableName