OOPSLA 2002


Tracks
Technical Program
Tutorials
Workshops
DesignFest
Educators' Symposium
Doctoral Symposium
Demonstrations
Posters
Student Research
Competition

Student Volunteers
Special Events
Exhibits
Housing Information
Registration Information
Transportation

Wednesday, 6 November – 10:00-13:15

42 Refactoring To Patterns

Joshua Kerievsky
Industrial Logic, Inc., joshua@industriallogic.com

Patterns are undeniably useful design aids and a cornerstone of object-oriented programming. Yet with the emergence of agile methodologies like Extreme Programming, our motivation for using patterns has changed. Today, we use patterns when they can help us reduce or remove duplication, simplify the un-simple or make our code better at communicating its intents. In other words, we refactor to patterns for the same reason we refactor in general: to improve the design of our code. But since the motivation for using a pattern, according to the published literature, rarely resembles the motivation to refactor, it is easy to misapply patterns or over-engineer solutions using patterns. In this tutorial, we will study numerous real-world refactorings to patterns (in Java and UML) and examine the refactoring roots of patterns, the role of patterns in evolutionary design and common motivations for refactoring to patterns.

Attendee background

Attendees will get the most out of this tutorial if they have some basic experience with Refactoring and Design Patterns.

Format

Interactive lecture.

Presenter

Joshua Kerievsky is a software development coach and programmer. After programming on Wall Street for nearly 10 years, in 1995 he founded San Francisco Bay Area-based Industrial Logic (http://industriallogic.com), a company that specializes in Extreme Programming (XP). Since 1999, Joshua has been programming and coaching on small, large and distributed XP projects and teaching XP to people throughout the world. He regularly speaks about XP, has authored numerous articles, simulations and games about XP and patterns and is working on the forthcoming book Refactoring to Patterns (http://industriallogic.com/xp/refactoring/).