Course · 6 lessons ~30 hr Intermediate

Refactoring & Working with Legacy Code

Refactoring & Working with Legacy Code covers: Refactoring, Working Effectively with Legacy Code, Extreme Programming Explained. Master the discipline of changing code structure without changing behavior. Learn to work safely with code you did not write, code you wrote years ago, and code that has no tests. A long-maintained library is a masterclass in maintaining code over time. Every version bump, every deprecation, every backward-compatible change is a refactoring decision. This module gives you the vocabulary for what you already do: Fowler's "Branch by Abstraction" is how you deprecate features. Feathers' "Sprout Method" is how you add behavior to complex controllers without touching existing logic. The difference after this module: you will name these techniques, apply them systematically, and teach them to others.

reading · we frame, you read MIT or the canonical taught · we author, no canonical fits ↺ spirals back to earlier lessons
Course locked

Complete Design Patterns first.

This course unlocks once you've finished its prerequisite. Open prerequisite →

6 lessons. Read in order; spiral back when you need to. By the end you'll have used the core ideas twice — once on the abstract, once on something you'll meet at work next week.