リファクタリング 【refactoring】
規模の大きなプログラムを長期間に渡って開発し続けていると、急な仕様変更や機能追加でその場しのぎの継ぎ接ぎが行われた箇所や、柔軟性や拡張性に乏しい設計や構造、無駄な重複、意図の読み取りにくい難解・煩雑な箇所が増えてくる。
そのような場合に、そのまま開発を続行するのではなく、一度立ち止まって既存のコードを見直し、開発者にとって理解のしやすい構造や設計に改める作業をリファクタリングという。機能の追加や不具合の改善などは行わず、内部構造の改善に徹し、あくまで外部から見た振る舞いは変えないのが原則である。
リファクタリングによって開発の進捗そのものは変わらないため、一見、工数が増えて工期が遅れるだけの無駄な作業のように感じられるが、内部がひどく混乱したプログラムの場合、そのままコードの追加・修正を続けるよりも、見通しを良くして作業を再開する方が開発効率や速度が向上し、新規コードの品質向上や新たなバグの抑制を期待できる。
リファクタリングによって挙動が変化したり品質が低下することがないよう入念にテストする必要があり、小刻みにテストを実施できる環境作りが重要となる。また、リファクタリングに失敗しても元の状態に戻すことができるよう、バージョン管理システムなどで変更履歴の把握や管理を適切に行う必要がある。
(2024.3.9更新)