Refactoring

lecture
java
refactoring
solid
cohesion
coupling

See csse2002 for course logistics.

Today’s outline

  1. Good Practice Refactoring, When to Refactor, Code Smells
  2. Cohesion and Coupling
  3. SOLID Principles

Refactoring

See java-refactoring — what refactoring is, why it’s needed, good practice, and code smells (bad naming, duplication, feature envy).

Cohesion and coupling

See java-cohesion-and-coupling — modularization, the levels of coupling (content → data) and cohesion (coincidental → functional), and why high cohesion + low coupling is the goal.

SOLID principles

See java-solid-principles — why large software becomes rigid/fragile, and the first two SOLID principles: Single Responsibility and Open-Closed (the rest are covered in a later lecture).