Most developers know enough about refactoring to write code that's pretty good. They create short methods, and classes with one responsibility. They're also familiar with a good handful of refactorings, and the code smells that motivate them. This talk is about the next level of knowledge: the things advanced developers know that let them turn good code into great. Code that's easy to read and a breeze to change. These topics will be covered solely by LIVE CODING; no slides. We'll boldly refactor right on stage, and pray the tests stay green. You might even learn some vim tricks as well as an expert user shows you his workflow. Topics to cover include: * The Open-Closed Principle * The types of coupling, and their dangers * Why composition is so damn great * A powerful refactoring that Kent Beck refers to as "deep deep magic" * How to destroy conditionals with a NullObject * The beauty of the Decorator pattern * Testing smells, including Mystery Guest and stubbing the system under test * The stuff from the last halves of Refactoring and Clean Code that you never quite got to :) organizers') Obviously, my credibility relies entirely on this talk being awesome, so come ready to laugh, learn, and enjoy yourself.