When met with a tangled codebase, how do you decide what to refactor? How do you know if you're making progress?
Blog posts and books can make it look easy. "Here's the synthetic example, now use X scripted transformation." Unfortunately, codebases in the wild do not come with the right refactoring patterns hyperlinked.
In this hands on workshop, you will be presented with an actual Rails application ripe with code smells, tight coupling, leaky encapsulation, and missing abstractions. It's much more than a code sample, written by a real team of developers under a deadline.
We will practice identifying issues, explore strategies to attack them, and put them into practice. This is not a walkthrough of every refactoring in the cannon; this is practical application of great techniques. After this workshop you will be armed to attack your own legacy applications.
A laptop with a working ruby development environment: ruby 1.9.3, git, any OS with compilation support (GCC on Unix, DevKit on Windows) and a working understanding of Ruby and Rails (3+ months experience)
Session 1: Intro, Exploration/Discovery
Session 2: Introducing Duplication – 1 step back, 2 steps forward
Session 3: Collapsing Duplication
Session 4: Model, View, Controller & Retrospective