Public: This video is open for anyone on the internet to see.
Abstract Have you ever wondered if there was a better way to learn refactoring? Martin Fowler's Refactoring book was a great introductory book on how to clean up legacy code bases, but over the years, what I have found missing in that book is one a set of guidelines that links all the different types of refactoring techniques together into one continuous process. In this talk, I will show you how to take almost any code base, and refactor everything from the simplest nested' 'if' blocks all the way to extracting an actual domain/object model to using an IOC container framework., Using a set of repeatable steps, I will show you how easy it is to refactor almost any code base, even if you don't understand every part of the application. Outline Introduction Accidental vs Essential Complexity Essential Complexity as a design tool Chipping away accidental complexity to reveal the actual design Blind Refactoring in Ten Easy Steps Flattening nested if blocks Method extractions Class extractions The art of delegation Breaking the dependencies Recursive refactoring The tradeoffs of class decomposition vs inheritance, and how you can fix it Putting the pieces back together again / dealing with ravioli code The magic composition abilities of an IOC container The different flavors of IOC containers in .NET