refactoring-code
Refactoring Code
The Refactoring Hat
When refactoring, you change structure without changing behavior. Always have tests passing before and after.
Workflows
- Tests Green: Ensure all tests pass before starting
- Analyze: Use Grep to understand dependencies
- Small Steps: Make one small change at a time
- Verify Usages: Use Grep to find all usages before changes
- Commit Often: Commit after each successful refactoring
- Tests Green: Verify tests still pass after each change
Common Refactorings
Extract Method
When a code block does one thing, extract it to a named method.
- Use Grep to verify extraction won't break callers
- Extract the method
- Run tests
Rename for Clarity
Names should reveal intent.
- Use Grep to find ALL usages
- Use Edit with replace_all for codebase-wide rename
- Verify no missed references
Remove Dead Code
- Use Grep to verify code is unused
- If zero references, safe to remove
- If references exist, trace to understand usage
Code Smells to Address
- Long Method: Extract smaller methods
- Long Parameter List: Introduce parameter object
- Duplicate Code: Extract to shared function (use Grep to locate duplicates)
- Feature Envy: Move method to the class it uses most
- Data Clumps: Group related data into objects
- Primitive Obsession: Replace primitives with value objects
Safety Rules
- Never refactor and add features simultaneously
- Always use Grep to find all usages before removing/renaming
- Run tests after every change
- Use targeted Edit operations instead of broad find-replace
- Commit working states frequently
More from nguyenhuuca/assessment
compliance
Ensure regulatory compliance. Use when implementing GDPR, HIPAA, PCI-DSS, or SOC2 requirements. Covers compliance frameworks and controls.
18requirements-analysis
Analyze and refine product requirements. Use when clarifying scope, identifying gaps, or validating requirements. Covers requirement types and analysis techniques.
16security-review
Conduct security code reviews. Use when reviewing code for vulnerabilities, assessing security posture, or auditing applications. Covers security review checklist.
13identity-access
Implement identity and access management. Use when designing authentication, authorization, or user management. Covers OAuth2, OIDC, and RBAC.
12execution-roadmaps
Create execution roadmaps for projects. Use when planning multi-phase projects or feature rollouts. Covers phased delivery and milestone planning.
12cloud-native-patterns
Apply cloud-native architecture patterns. Use when designing for scalability, resilience, or cloud deployment. Covers microservices, containers, and distributed systems.
12