Improving software by changing its internal structure without altering its external behaviour.

When software developers add new features to code, it generally degrades because it was not designed with the extra features in mind.

This is solved by either rewriting the code or working around the problem. Rewriting code is extra work, but not doing so results in code that is increasingly and unnecessarily complicated.

Refactoring restructures code to clarify and simplify its design. This may involve extracting reusable code, removing duplicate code, adding features to make the code easier to alter in future, renaming functions and variables, reorganising classes and data structures.

"Refactoring, Reuse & Reality" by Bill Opdyke.

"Refactoring, a first example" by Martin Fowler.

Last updated: 2020-08-19

Nearby terms:


Try this search on Wikipedia, Wiktionary, Google, OneLook.