雑多なブログ

音楽や語学、プログラム関連の話題について書いています

コードのリファクタリングの時に意識する事

1. メソッドのネーミングを具体的な名前に変更する。

汎用的な名前にしてしまうと、なんの役割を担っているのか パッと見で分からなくなるため、なるべく明確な名前をつけよう。

2. ループ処理の内側で定義している変数をループの外に出す。

ループ処理の中で値を組み立てて変数に代入する

3. 未使用の変数やメソッド、処理を削除する。

当たり前の事だけど、意外とやりがち。Gitなどのバージョン管理ツールを使っているなら、あとから履歴を辿れるので思い切って消そう。余計なコードがなくなるだけで心理的なストレスが軽減される。

重複するコードを一つにまとめる。

試行錯誤していると、重複したコードを書いてしまいがちだけど、 実装がひと段落した段階で必ず確認しよう。時間が経つほど、細かいしよう変更が発生し、それによって微妙に重複箇所の実装にズレが生じてしまい、重複コードをまとめる事が難しくなってしまう。 ※実装のコスト以上にテストが大変

早期リターン

特に意識せずに条件分岐を書き出すと、ネストが深くなったり if-elseの条件分岐がずらーっと並んで見通しが悪くなる事が多々ある。下記のケースでは、if (hoge == null) {} は後続の処理の前提条件となるので、これを満たさない場合は即時リターンさせてシンプルに記述する事ができる。

普通に条件分岐書いた場合の例

if (hoge == null) {
    return false;
} elseif (hoge == 2) {
} elseif (hoge == 3) {
} else {
}

早期リターンの例

if (hoge == null) {
    return false;
}

if (hoge == 2) {
} elseif (hoge == 3) {
} elseif (hoge == 4) {
} else {
}

無駄なループ処理を減らす。

ループがたくさんある場合に、このループは無くせないか? 調べてみよう。

コード規約を定期的に再確認する。

思い込みでコード書いてると、割と勘違いしたまま書いてしまっている事もあるので、定期的にコード規約を確認しよう。