テクノロジ系システム開発
リファクタリングとは?
読み方: りふぁくたりんぐ
1行定義
プログラムの外部から見た振る舞いを変えずに、内部構造(コード品質・可読性・保守性)を改善する作業
詳細解説
リファクタリング(Refactoring)は、プログラムの外部から見た動作(機能・インターフェース・出力)を変えることなく、内部のコード構造(可読性・保守性・拡張性・パフォーマンス)を改善する作業です。Martin Fowlerの著書「リファクタリング:既存のコードを安全に改善する」で体系化されました。リファクタリングの目的は次の通りです。技術的負債の返済:場当たり的な実装・コードの重複・複雑化したロジックを整理して、将来の変更コストを下げる。可読性向上:他の開発者(または将来の自分)がコードを理解しやすくする。バグ修正の容易化:構造が明確になることでバグの発見・修正が容易になる。テスト容易性向上:疎結合な設計に整理することで単体テストが書きやすくなる。代表的なリファクタリング手法はメソッドの抽出(長いメソッドを意味のある小メソッドに分割)・変数名・メソッド名のリネーム(意図が伝わる名前に変更)・重複コードの除去(DRY原則: Don't Repeat Yourself)・条件式の単純化・クラスの分割・マジックナンバーの定数化などです。リファクタリングの前提は十分な自動テスト(回帰テスト)が存在することで、テストなしのリファクタリングはデグレードリスクが高くなります。TDD(テスト駆動開発)のRed-Green-Refactorサイクルにリファクタリングが組み込まれています。ITパスポートでは「リファクタリングの定義」「外部動作を変えない点」「技術的負債との関係」が出題されます。
ITパスポートでの出題ポイント
- 1外部動作を変えずに内部コード構造を改善(機能変更はしない)
- 2技術的負債を返済して将来の変更コスト・バグリスクを低減
- 3自動テスト(回帰テスト)が整備されていることが前提条件
- 4TDDのRed-Green-Refactorサイクルの最終ステップ
関連用語
シラバス 6.5 準拠 / 最終更新: 2026-05-26