/refactoring-collection

An ongoing curated list of awesome frameworks, important books and articles, talks and videos, libraries, learning tutorials, coding best practices and technical resources about Refactoring

MIT LicenseMIT

Guide to Refactoring

An ongoing curated list of awesome frameworks, important books and articles, talks and videos, libraries, learning tutorials, coding best practices and technical resources about Refactoring.

Thanks to our daily readers and contributors. The goal is to build a categorized community-driven collection of very well-known resources. Sharing, suggestions and contributions are always welcome!

Definition

There are a few definitions of refactoring (in practice very similar). The most popular is a 2-part definition by Martin Fowler:

Refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.

Refactoring (verb): to restructure software by applying a series of refactorings without changing its observable behavior.

Books

Websites

  • Refactoring.com - part of Martin Fowler's website, contains a catalog of 60+ techniques; free version provides simple examples, paid version contains description, mechanics and more. Most of tecnhiques are available in the "Refactoring" book.
  • Refactoring Guru - contains 60+ techniques, each with description, implementation and a simple example + around 20 code smells with description and suggested refactorings that help to get rid of it

Articles

Others

Quotes

  • Don't live with broken windows. - Andy Hunt & Dave Thomas
  • A Fallacy of Software: If it works, and we don't change anything, it will keep working. - Jessica Kerr
  • Cities grow, cities evolve, cities have part that simply die while other parts flourish; each city has to be renewed in order to meet the needs of its populace. ... Software-intensive systems are like that. - Grady Booch
  • You think refactoring legacy software is bad. Try refactoring legacy culture. - Larry Garfield
  • We're changing what the code says without changing what it does. - Michael D. Hill
  • One of my most productive days was throwing away 1000 lines of code. - Ken Thompson
  • Refactoring - the process of taking a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself. - Jason Gorman

License

MIT License & cc license

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Back to top