Code refactoring

From Wiki @ Karl Jones dot com
Revision as of 06:57, 18 August 2015 by Karl Jones (Talk | contribs) (Cyclomatic complexity)

Jump to: navigation, search

Code refactoring is the process of restructuring existing computer code without changing its external behavior.

Refactoring improves nonfunctional attributes of the software.

Advantages include:

These can improve source code maintainability and create a more expressive internal architecture or object model to improve extensibility.

Typically, refactoring applies a series of standardised basic micro-refactorings, each of which is (usually) a tiny change in a computer program's source code that either preserves the behavior of the software, or at least does not modify its conformance to functional requirements.

Many development environments provide automated support for performing the mechanical aspects of these basic refactorings.

If done extremely well, code refactoring may also resolve hidden, dormant, or undiscovered computer bugs or vulnerabilities in the system by simplifying the underlying logic and eliminating unnecessary levels of complexity.

If done poorly it may fail the requirement that external functionality not be changed, and/or introduce new bugs.

Quotations

By continuously improving the design of code, we make it easier and easier to work with. This is in sharp contrast to what typically happens: little refactoring and a great deal of attention paid to expediently adding new features. If you get into the hygienic habit of refactoring continuously, you'll find that it is easier to extend and maintain code.

—Joshua Kerievsky, Refactoring to Patterns

Factoring (decomposition)

In computer science, factoring (or decomposition) is the similar, broader principle of breaking a complex problem or system into parts that are easier to conceive, understand, program, and maintain.


See also

External links