Refactoring is "the
process of changing a software system in such a way that it does not alter the
external behaviour of the code yet improves its internal structure,"
according to Martin Fowler, the "father" of refactoring. The concept
of refactoring covers practically any revision or cleaning up of source
code, but Fowler consolidated many best practices from across the software
development industry into a specific list of "refactoring" and
described methods to implement them in his book, Refactoring:
Improving the Design of Existing Code.
One approach to
refactoring is to improve the structure of source code at one point and
then extend the same changes systematically to all applicable references
throughout the program. The result is to make the code more efficient,
scalable, maintainable or reusable, without actually changing any functions of
the program itself.
While refactoring can be
applied to any programming language, the majority of refactoring current tools
were originally developed for the Java language. In 2001, automated refactoring
tools began to appear in earnest, including the IntelliJ IDEA Java IDE (Integrated
Development Environment), the X-ref plug-in tool for the Emacs editor
and the Instantiations jFactor stand-alone refactoring tool.
Many basic editing
environments support simple refactoring’s like renaming a function or variable
across an entire code base. Eric Raymond, a leading philosopher about program
development, maintains that the concept of refactoring is consistent with the
idea of get-something-working-now-and-perfect-it-later approach long familiar
to Unix and open source programmers and hackers. The
idea is also embodied in the approach known as extreme programming.
Today, refactoring plays
an important role in application modernization and moving legacy apps
from a monolithic structure to microservices.
Comments
Post a Comment