リファクタリング
りふぁくたりんぐ
Refactoring
一言でいうと
外から見える振る舞いを変えずに、コードの内部構造をきれいにする作業のこと。
詳しい意味
リファクタリングは、ソフトウェアの「外から見える振る舞い」を変えずに、内部のコード構造・命名・分割を改善する作業です。バグ修正でも機能追加でもなく、純粋に「読みやすく・直しやすく・テストしやすく」するための作業。リファクタリングを安全に行うには、まずテストを揃えて挙動を固定し、小さな単位で変更してテストを通すサイクルが基本。「壊れていないなら直すな」原則と「変更が必要な時こそ綺麗にする」原則のバランスをチームで決めます。長く触らないと内部腐敗(technical debt)が溜まり、変更コストが上がっていくので、定期的なリファクタは投資として位置づけられます。
何に使うか
新機能を追加する直前に、改修対象周辺のコードを整えるとき。重複コードを共通化するとき。テストが書きにくい構造をテスト容易性のために整理するとき。
どんな時に出るか
「リファクタしてからPR出す」「リファクタ専用PR」「これは大規模リファクタリングが必要」といった場面で登場します。
具体例
- ユニットテストでカバーしてからリファクタリングしたので、安全にコード構造を整理できた。
- 技術的負債が溜まった箇所は、機能追加のついでに少しずつリファクタする運用にしている。
別名・略称
refactoring(りふぁくたりんぐ)refactor(りふぁくた)リファクタ(りふぁくた)
初心者向けメモ
家の「片付け」のようなものです。中身(生活機能)は変わらず、収納・配置・動線を改善する作業。やる前と後で住人の暮らし方は同じだけど、暮らしやすさと次の改装のしやすさが大きく変わります。