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