テクノロジ系システム開発

リファクタリングとは?

読み方: りふぁくたりんぐ
1行定義

プログラムの外部から見た振る舞いを変えずに、内部構造(コード品質・可読性・保守性)を改善する作業

詳細解説

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

ITパスポートでの出題ポイント

  • 1外部動作を変えずに内部コード構造を改善(機能変更はしない)
  • 2技術的負債を返済して将来の変更コスト・バグリスクを低減
  • 3自動テスト(回帰テスト)が整備されていることが前提条件
  • 4TDDのRed-Green-Refactorサイクルの最終ステップ

関連用語

TDD(テスト駆動開発)
システム開発
モジュール結合度
システム開発
回帰テスト(リグレッションテスト)
システム開発
バージョン管理
システム開発
ペアプログラミング
システム開発

リファクタリング」の過去問を解いて理解を定着

合格ナビでは IPA 公式 600問 + AI解説 で「○○とは?」をその場で深掘りできます。

シラバス 6.5 準拠 / 最終更新: 2026-05-26