リファクタリング
Refactoring
りふぁくたりんぐ
他の資格での定義
ソフトウェアの外部的な振る舞い(機能)を変えずに、内部構造を改善する活動。コードの可読性・保守性を向上させ、技術的負債を解消する。保守工程や開発中に継続的に行われる。
外部から見たソフトウェアの振る舞いを変えずに、内部構造を改善する作業。コードの可読性、保守性、拡張性を向上させることが目的。回帰テストにより既存機能への影響がないことを確認しながら段階的に進める。
外部から見た振る舞い(機能)を変えずに、コードの内部構造を改善すること。コードの可読性、保守性、拡張性の向上を目的とする。Martin Fowlerが体系化し、メソッドの抽出、変数名の改名、クラスの分割などの技法がある。
ソフトウェアの外部的な振る舞いを変えずに、内部構造を改善する作業。コードの可読性、保守性、拡張性を向上させる。アジャイル開発やXPにおいて、技術的負債の蓄積を防ぐための重要なプラクティス。
関連キーワードの用語
短い反復(イテレーション)を繰り返しながら、動作するソフトウェアを段階的に開発していく手法の総称。変化する要求への迅速な対応を重視し、顧客との継続的な協力により価値を提供する。
アジャイル開発において、利用者の視点でシステムに求める機能や価値を簡潔に記述したもの。「〜として、〜したい。なぜなら〜だから」という形式で記述され、要件を共有・管理する単位となる。
アジャイル開発手法の一つ。ペアプログラミング、テスト駆動開発、リファクタリング、継続的インテグレーションなどのプラクティスを実践し、高品質なソフトウェアを迅速に開発する。エクストリームプログラミングとも呼ばれる。
実装コードを書く前にテストコードを先に作成し、テストが成功するように実装を進める開発手法。TDDとも呼ばれ、テスト→実装→リファクタリングのサイクルを短期間で繰り返す。
2人のプログラマが1台のコンピュータを使い、1人がコードを書き(ドライバー)、もう1人がレビュー・助言(ナビゲーター)を行いながら共同で開発する手法。XPのプラクティスの一つ。
アジャイル開発のイテレーション終了時に、チームの作業プロセスや進め方を振り返り、改善点を議論する活動。レトロスペクティブとも呼ばれ、チームの継続的な成長と改善を促進する。