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

12 Aug 09: Third ACM Workshop on Refactoring Tools
Bill Opdyke and Bob Fuhrer are the organizers for the 3rd workshop on refactoring tools, held at OOPSLA'09.
11 Nov 08: Tools page is now closed
Refactoring tools are now much more common than they were when I started this site, so I don't think there's any strong need to try and keep a list of them any more. So I've decided to close this page.
16 Jul 08: Book on Refactoring in VB
I haven't got it, so I can't say if it's any good, but I thought I should mention it here.
10 Jun 08: Workshop on Refactoring Tools
Danny Dig is hosting another workshop on refactoring tools at OOPSLA 2008.

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