Sources Catalog Mailing List Atom Feed martinFowler.com

Refactoring Home Page


Maintained by:
Martin Fowler

Hosted by:
ThoughtWorks

What is Refactoring?

Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior. Its heart is a series of small behavior preserving transformations. Each transformation (called a 'refactoring') does little, but a sequence of transformations can produce a significant restructuring. Since each refactoring is small, it's less likely to go wrong. The system is also kept fully working after each small refactoring, reducing the chances that a system can get seriously broken during the restructuring.

This site is a simple portal for information about refactoring. There is a list of sources of information about refactoring, including various books that have been written. There is a catalog of common refactorings, mostly taken from the original book. Many refactorings can be automated, and various tools exist to help the refactoring process. If you want to ask more questions try the mailing list. When new information appears, I update this page and the Atom feed.

My thanks to Don Wells for providing me with the logo for this site.

Recent News

14 Dec 10: Workshop on Refactoring and Testing
Steve Counsell and Steve Swift are organizing a workshop on refactoring and testing at the ICST conference (Berlin, March 21-25, 2001).
07 Dec 10: Fourth Workshop on Refactoring Tools
Danny Dig and Don Batory are hosting a workshop on refactoring tools at ICSE 2011

All material on this site is copyrighted. For articles attributed to named authors, they are the copyright of the corresponding authors. Any unattributed articles are copyright Martin Fowler. Please link freely to this site, but if you want to copy any of the materials you should contact the authors first