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

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
06 Feb 06: Ruby crosses Rubicon
A common complaint about Ruby is the lack of refactoring support. It seems there is now a serious effort to fix this problem, with the important news that the resulting tool is over my infamous rubicon. The tool is still rather rough around the edges, but it looks like they have made serious progress down the right path.
30 Dec 06: Switched to Atom
I've created an atom feed for the updates and news on this site. The old RSS 0.91 feed is still active, but I will drop it without warning as soon as I have to do any work on it.
13 Oct 06: Refactoring Research Site
Danny Dig, who is based at the Not-So-Secret Refactoring Central Command Center, has started up a web site aimed at collecting together some of the research work on refactoring (which I confess I'm not as good at keeping up with). In particular he has a good survey of people connected with refactoring.
03 Apr 06: Book on Refactoring Databases is Out
One of area of refactoring that's generally been underserved is dealing with databases. Scott and Pramod's new book does for databases what my book did for application code.

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