Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Code refactoring
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==History== The first known use of the term "refactoring" in the published literature was in a September, 1990 article by [[William Opdyke]] and [[Ralph Johnson (computer scientist)|Ralph Johnson]].<ref name="opdyke90">{{cite conference | first = William F. | last = Opdyke | author-link = William Opdyke |author2=Johnson, Ralph E. | title = Refactoring: An Aid in Designing Application Frameworks and Evolving Object-Oriented Systems | book-title = Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications (SOOPPA) | publisher = ACM |date=September 1990 }}</ref> Although refactoring code has been done informally for decades, [[Bill Griswold|William Griswold]]'s 1991 Ph.D. dissertation<ref name="griswold-thesis">{{cite thesis | first = William G | last = Griswold | author-link = Bill Griswold | title = Program Restructuring as an Aid to Software Maintenance | degree = Ph.D. | publisher = University of Washington |date=July 1991 | url = http://cseweb.ucsd.edu/~wgg/Abstracts/gristhesis.pdf | access-date = 2011-12-24 }}</ref> is one of the first major academic works on refactoring functional and procedural programs, followed by [[William Opdyke]]'s 1992 dissertation<ref name="opdyke-thesis">{{cite thesis | first = William F | last = Opdyke | author-link = William Opdyke | title = Refactoring Object-Oriented Frameworks | degree = Ph.D. | publisher = University of Illinois at Urbana-Champaign | date = June 1992 | url = http://dl.acm.org/citation.cfm?id=169783 | archive-url = https://web.archive.org/web/20191216212919/https://dl.acm.org/citation.cfm?id=169783 | archive-date = 2019-12-16 | format = compressed Postscript | access-date = 2008-02-12 | url-status = bot: unknown }}</ref> on the refactoring of object-oriented programs,<ref name="etymology">{{cite web| url = http://martinfowler.com/bliki/EtymologyOfRefactoring.html| title = Martin Fowler, "MF Bliki: EtymologyOfRefactoring"}}</ref> although all the theory and machinery have long been available as [[program transformation]] systems. All of these resources provide a catalog of common methods for refactoring; a refactoring method has a description of how to apply the [[Scientific method|method]] and indicators for when you should (or should not) apply the method. [[Martin Fowler (software engineer)|Martin Fowler]]'s book ''Refactoring: Improving the Design of Existing Code'' is the canonical reference. {{According to whom|date=July 2018}} The terms "factoring" and "factoring out" have been used in this way in the [[Forth (programming language)|Forth]] community since at least the early 1980s. Chapter Six of [[Leo Brodie (programmer)|Leo Brodie]]'s book ''[[Thinking Forth]]'' (1984)<ref>{{cite book |last1=Brodie |first1=Leo |title=Thinking Forth |year=2004 |isbn=0-9764587-0-5 |pages=171β196 |publisher=Fig Leaf Press, Forth Interest |url=http://thinking-forth.sourceforge.net |access-date=3 May 2020 |archive-url=https://web.archive.org/web/20051216163615/http://thinking-forth.sourceforge.net/ |archive-date=16 December 2005 |url-status=dead }}</ref> is dedicated to the subject. In extreme programming, the Extract Method refactoring technique has essentially the same meaning as factoring in Forth; to break down a "word" (or [[Function (programming)|function]]) into smaller, more easily maintained functions. Refactorings can also be reconstructed<ref name="What-is-code-refactoring?">{{cite news | first = Andriy | last = Sokolov | title = What is code refactoring? | url = https://duecode.io/blog/what-is-code-refactoring/ }}</ref> posthoc to produce concise descriptions of complex software changes recorded in software repositories like [[Git]].
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Code refactoring
(section)
Add topic