Refactoring
Refactoring improves a codebase's internal structure without changing external behavior, enhancing readability, maintainability, and extensibility.
Purpose
Continuously improve code quality without adding features — a core practice of agile development.
Mechanism
Safe small steps: extract method, inline variable, move method, introduce parameter object. Every step keeps the tests passing. IDEs automate refactorings. Fowler's Refactoring catalogs 60+ refactorings.
Use cases
- Code quality improvement
- Technical debt repayment
- Agile development