Synopsis Restructuring source code to improve its internal structure without changing its external behaviour.
Description Refactoring was popularized by Martin Fowler and aims at improving source code quality. The basic philosophy is to identify small, atomic, refactoring steps that improve the internal structure of the code but do not change its external behaviour. The supposed simplicity of these steps must guarantee their correctness.

Atomic steps can be combined to create large and complex refactorings. The major Interactive Development Environements -- Eclipse, IntelliJ, Visual Studio -- provide interactive support for refactoring.
Examples Some well-known refactorings are:
Is this page unclear, or have you spotted an error? Please add a comment below and help us to improve it. For all other questions and remarks, visit