A
software engineering practice which began in (but is not restricted to)
dynamically typed object oriented programming circles. Literally, it is the practice of
moving functionality from one place to another
internally to the
code without changing the
external interface.
The central drive behind refactoring is making maintenance easier; this happens for three central reasons:
Refactoring is best-known in the Smalltalk and Extreme Programming circles, but is also a characteristic of good FORTH, and can be applied to nearly any other programming paradigm with good results.