Refactoring Large Code Units
Improve cohesion and readability rather than optimizing for an arbitrary line count.
Workflow
- Read the whole unit and its important callers or tests.
- Identify the concrete source of difficulty: mixed responsibilities, deep nesting, hidden state transitions, repeated setup, or an unstable boundary.
- Choose extractions that have meaningful names and inputs. Follow existing repository structure rather than introducing layers solely to make units shorter.
- Preserve behavior and public contracts unless the task explicitly changes them.
- Verify with focused tests and the repository's normal quality gates.
A long linear function may be clearer than many tiny helpers; a short function may still combine unrelated responsibilities. Use size as a prompt to inspect, not a pass/fail threshold.
Keep the refactor scoped to what improves the current change. If a larger architectural split is justified, explain the trade-off and seek agreement before expanding scope.