Sources Catalog Mailing List Atom Feed Tools 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

10 Jun 08: Workshop on Refactoring Tools
Danny Dig is hosting another workshop on refactoring tools at OOPSLA 2008.
16 Aug 07: Software Engineering Radio Podcasts
They've been around since May, but I just discovered two podcasts on Refactoring. Both involve Eberhard Wolff interviewing Martin Lippert. The first is a general introduction to refactoring, the second talks about issues with large refactorings.
03 Apr 07: Workshop on Refactoring Tools
Danny Dig is organizing the First Workshop on Refactoring Tools at ECOOP'07

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