Refactoring

CL1 (Qualified)
Refactoring Concept (what/when/why)

Smells Catalog and possible re-factorings

Moving Features Between Objects (basic)

Move Method

Move Field

Organizing Data (basic)

Encapsulate Field

Encapsulate Collection

Composing Methods (basic)

Extract Method

Inline Method

Inline Temp

Replace Temp with Query

Split Temporary Variable

Simplifying Conditional Expressions (basic)

Decompose Conditional Expression

Consolidate Conditional Expression

Consolidate Duplicate Conditional Fragments

Remove Control Flag

Replace Conditional with Polymorphism

CL2 (Competent)
Making Method Calls Simpler

Dealing with Generalization

Creation

Replace Constructors with Creation Methods

Move Creation Knowledge to Factory

Encapsulate Classes with Factory

Encapsulate Composite with Builder

Simplification

Replace Conditional Logic with Strategy

Replace State-Altering Conditionals with State

Replace Implicit Tree with Composite

Replace Conditional Dispatcher with Command

Generalization

Form Template Method

Extract Composite

Replace Hard-Coded Notifications with Observer

Red green refactoring

Managing Technical Debt