| 1 | # Refactor Candidates |
| 2 | |
| 3 | After TDD cycle, look for: |
| 4 | |
| 5 | - **Duplication** → Extract function/class |
| 6 | - **Long methods** → Break into private helpers (keep tests on public interface) |
| 7 | - **Shallow modules** → Combine or deepen |
| 8 | - **Feature envy** → Move logic to where data lives |
| 9 | - **Primitive obsession** → Introduce value objects |
| 10 | - **Existing code** the new code reveals as problematic |
| 11 |