- Mysterious Name ✅
- Long Function ✅
- Long Parameter List ✅
- Primitive Obsession
- Data Clumps ✅
- Loops ✅
- Large Class
- Extract Function
- Replace Temp with Query
- Split Loop
- Replace Parameter with Query
- Introduce Parameter Object
- Preserve Whole Object
- Remove Flag Argument
- Encapsulate Variable
- Split Variable
- Replace Derived Variable with Query
- Separate Query from Modifier
- Remove Setting Method
- Combine Function into Transform
- Combine Functions into Class
- Split Phase
- Replace Conditional with Polymorphism