1. The Bloaters
    1. Long Method
    2. Large Class
    3. Primitive Obsession
    4. Long Parameter List
    5. Data Clumps
  2. The Object-Orientation Abusers
    1. Switch Statements
    2. Temporary Field
    3. Refused Bequest
    4. Alternative Classes with Different Interfaces
  3. The Change Preventers
    1. Divergent Change
    2. Shotgun Surgery
    3. Parallel Inheritance Hierarchies
  4. The Dispensables
    1. Lazy class
    2. Data class
    3. Duplicate Code
    4. Dead Code,
    5. Speculative Generality
  5. The Couplers
    1. Feature Envy
    2. Inappropriate Intimacy
    3. Message Chains
    4. Middle Man