【りふぁくたりんぐ】

リファクタリング とは?

最終更新:
💡 動作はそのまま、コードを「お掃除」する

外部から見た動作を変えずに、コードの内部構造を改善すること。可読性・保守性の向上が目的。

📌 このページのポイント
動作を保って構造を整理 整理する前 整理した後 長い処理 準備 計算 表示 同じ入力 → 同じ外部の動作 小さく変更して、テストなどで確認 読みやすさ・変更しやすさを改善
左右は同じ処理の整理前と整理後の例。矢印は構造の改善で、機能追加ではない。テストで確認する範囲も考えて進める。
ひよこ ひよこ
なんでリファクタリングするの?
ペンギン先生 ペンギン先生
理解しにくい名前や重複した処理などを整理して、コードを読みやすく、変更しやすくするためだよ。外部から見た動作を保つことが条件で、機能を増やす変更やバグを直す変更とは区別するんだ。
ひよこ ひよこ
いつやるべき?
ペンギン先生 ペンギン先生
機能を追加する前に構造を整えたり、作業中に分かりにくい部分を整理したりするよ。一度に全部を書き直すより、小さな変更を積み重ねて確認する方法が基本だね。必要な範囲や作業の負担も考えて進めるんだ。
ひよこ ひよこ
テストなしで進めていい?
ペンギン先生 ペンギン先生
動作の変化を見つけにくくなるので、まず対象の動作を確認するテストを整えることが大切だよ。テストを通しながら少しずつ変更する。ただし、テストが通ることだけで、未確認の動作まで完全に同じと保証できるわけではないんだ。
ひよこ ひよこ
代表的な技法は?
ペンギン先生 ペンギン先生
意味が伝わる名前に変えるRenameや、一まとまりの処理を関数に取り出すExtract Functionなどがあるよ。重複を整理する場合も、見た目が似ているだけで同じ処理とは限らないので、役割と動作を確かめるんだ。
ひよこ ひよこ
整理の途中でバグを見つけたら?
ペンギン先生 ペンギン先生
バグ修正は動作を変える作業として区別すると、何を確認すべきか分かりやすいよ。整理した結果を確かめてから、バグを再現するテストなどを用意して修正する。修正と構造の整理を混ぜすぎないことが大切なんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「リファクタリング」って出てきたら「動作を変えずにコードを改善すること」と思えればだいたいOK!
📖 おまけ:英語の意味
「Refactoring」 = 構造を組み直すこと
💬 ソフトウェアでは、動作を保ったまま内部構造を整理し直すという意味で使うよ

参考資料

← 用語集にもどる