Refactoring Guide Skill
Refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior.
Core Refactoring Patterns
- Composing Methods
-
Extract Method: If a method is too long or complex, turn a fragment of it into its own method.
-
Inline Method: If a method body is as clear as its name, move the body into the callers and delete the method.
- Moving Features Between Objects
- Move Method/Field: Relocate logic to the class where it most naturally belongs to reduce coupling.
- Simplifying Expressions
-
Decompose Conditional: Extract complex conditional logic into clearly named methods.
-
Consolidate Conditional Expression: Merge multiple conditional checks that lead to the same result.
- Clean Code & Naming
-
Rename: Use clear, intention-revealing names for variables, methods, and classes.
-
Replace Magic Number with Symbolic Constant: Use named constants instead of literal numbers.
Safe Refactoring Workflow
-
Verify Tests: Ensure you have a solid test suite that passes before starting.
-
Small Steps: Make one tiny change at a time.
-
Run Tests: Execute the test suite after every small change to catch regressions immediately.
-
Commit Often: Commit your changes once a small refactoring step is complete and verified.
When to Refactor
-
Rule of Three: Refactor when you find yourself doing something for the third time.
-
Code Smells: Refactor when you encounter long methods, large classes, or duplicated code.
-
Adding Features: Refactor before adding new functionality to make the implementation easier.