Monday, Morning
Refactoring: Improving the Design of Existing Code
Convention Ctr – 101C
Martin Fowler, ThoughtWorks

Most experts in object-oriented development stress the importance of iterative development. As you proceed with the iterative development, you need to add function to the existing code base. If you are really lucky, that code base is structured just right to support the new function. Of course most of the time we are not lucky and, often, new functionality is just patched on top. Soon this patch upon patch approach causes the design to decay, slowing down later progress and breeding bugs.

Refactoring is all about how you can avoid these problems by modifying your code in a controlled manner. Done well you can make far-reaching changes to an existing system quickly, and without introducing new bugs. With refactoring as part of your development process you can keep your design clean, make it hard for bugs to breed. and keeping your productivity high. The main aim of this tutorial is to understand the basic principles and rhythm of refactoring. We’ll also cover a dozen or so important refactorings and the “code smells” that lead you to refactoring.

Presentation Format: Presentation.

Attendee Background: All the examples will use Java so you should have a working knowledge of Java.

Martin Fowler has spent over a decade applying object technology to business information systems. He is the Chief Scientist for ThoughtWorks, an Internet professional services firm. He has worked on projects for leasing, payroll, derivatives trading, and health care with a wide range of technologies. His clients have included Chrysler, Dana Commercial Credit, Andersen Consulting, and IBM. He is the author of the Addison-Wesley books “Analysis Patterns,” “UML Distilled,” and “Refactoring.”

at a Glance
Tutorials by Track
Full Description
of all Tutorials
Final Program

 OOPSLA'98 Home