└── README.md /README.md: -------------------------------------------------------------------------------- 1 | A curated list of awesome refactoring and legacy code resources, inspired by other awesome-...s 2 | 3 | 4 | ## Contents 5 | 6 | - [Posts](#posts) 7 | - [Examples](#examples) 8 | - [Books](#books) 9 | - [Quotes](#quotes) 10 | - [Miscellaneous](#miscellaneous) 11 | 12 | ## Posts 13 | 14 | - [Optimizing A Program (And Programming)](http://geepawhill.org/optimizing-a-program-and-programming/) - Video that starts with an optimization issue that yields to the subject by [Michael D. Hill](https://twitter.com/GeePawHill) on Feb 2018 15 | - [What is legacy code? Is it good for you?](https://blog.rinatussenov.com/what-is-legacy-code-is-it-good-for-you-fb260a467fb7) - Blog post by [Rinat Ussenov](https://blog.rinatussenov.com/@rinatrussenov) on Mar 2017 16 | - [Characterization Testing](https://michaelfeathers.silvrback.com/characterization-testing) - Blog post by [Michael Feathers](https://twitter.com/mfeathers) on Aug 2016 17 | - [How to conquer legacy code](https://medium.freecodecamp.org/conquer-legacy-code-f9e23a6ab758) - Blog post by [Bill Sourour](https://twitter.com/billsourour) on Aug 2016 18 | 19 | 20 | ## Examples 21 | 22 | - [Refactoring](https://sourcemaking.com/refactoring) - Several techniques from [SourceMaking](https://sourcemaking.com) 23 | - [TED 3.0: Working Effectively with Legacy iOS Code](https://carpeaqua.com/2016/06/21/working-effectively-with-legacy-ios-code/) - by [Justin Williams](https://twitter.com/justin) on Jun 2016 24 | - [Refactoring a JavaScript video store](https://martinfowler.com/articles/refactoring-video-store-js/) - by [Martin Fowler](https://twitter.com/martinfowler) on May 2016 25 | - [How to Survive a Legacy Code Apocalypse on Android](https://speakerdeck.com/rallat/how-to-survive-a-legacy-code-apocalypse-on-android) - Presentation by [Israel Ferrer](https://twitter.com/rallat) on Nov 2014 26 | - [Java to Clojure: "Refactoring" refactored functionally](https://adambard.com/blog/refactoring-refactored/) - Blog post by [Adam Bard](https://twitter.com/adambard) on Jun 2014 27 | - [Catalog of Refactorings](https://refactoring.com/catalog/) - by [Martin Fowler](https://twitter.com/martinfowler) on Dec 2013 28 | 29 | 30 | ## Books 31 | 32 | - [Working Effectively with Legacy Code](https://www.goodreads.com/book/show/44919.Working_Effectively_with_Legacy_Code) - by [Michael Feathers](https://twitter.com/mfeathers) on Sep 2014 33 | * [Podcast](https://www.hanselminutes.com/165/working-effectively-with-legacy-code-with-michael-feathers) of THE HANSELMINUTES PODCAST on Jun 2009 34 | * [MP3](https://www.podtrac.com/pts/redirect.mp3/s3.amazonaws.com/hanselminutes/hanselminutes_0165.mp3) and [Transcript](https://s3.amazonaws.com/hanselminutes/hanselminutes_0165.pdf) 35 | * [Presentation](https://www.slideshare.net/nashjain/working-effectively-with-legacy-code-presentation) by [Michael Feathers](https://twitter.com/mfeathers) on Sep 2008 36 | * [Paper](http://www.netobjectives.com/system/files/WorkingEffectivelyWithLegacyCode.pdf) by [Michael Feathers](https://twitter.com/mfeathers) on Apr 2002 37 | * [Review](https://www2.dmst.aueb.gr/dds/pubs/Breview/2005-CR-Legacy/html/review.html) by [Diomidis Spinellis](https://twitter.com/coolsweng) on November 2006 (publish date on ACM Computing Reviews, 47(11)) 38 | - [Refactoring Improving the Design of Existing Code](https://www.goodreads.com/book/show/44936.Refactoring) - by [Martin Fowler](https://twitter.com/martinfowler) on Jul 1999 39 | * [Dedicated site](https://martinfowler.com/books/refactoring.html) 40 | 41 | 42 | ## Quotes 43 | 44 | - _Don't live with broken windows._ - [Andy Hunt](https://twitter.com/pragmaticandy) & [Dave Thomas](https://twitter.com/pragdave) 45 | - _A Fallacy of Software: If it works, and we don't change anything, it will keep working._ - [Jessica Kerr](https://twitter.com/jessitron) 46 | - _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](https://twitter.com/grady_booch) 47 | - _You think refactoring legacy software is bad. Try refactoring legacy culture._ - [Larry Garfield](https://twitter.com/Crell/status/816020121936400384) 48 | - _We're changing what the code says without changing what it does._ - [Michael D. Hill](http://geepawhill.org/optimizing-a-program-and-programming/) 49 | - _One of my most productive days was throwing away 1000 lines of code._ - [Ken Thompson](https://en.wikipedia.org/wiki/Ken_Thompson) 50 | - _Refuctoring - 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](http://www.codemanship.co.uk/) 51 | 52 | 53 | ## Miscellaneous 54 | 55 | - [Answer to _What are the key points of Working Effectively with Legacy Code?_ on SO](https://softwareengineering.stackexchange.com/a/122024/32318) - by [Péter Török](https://softwareengineering.stackexchange.com/users/14221/p%C3%A9ter-t%C3%B6r%C3%B6k) 56 | - [Refactoring](https://refactoring.com/) - A site by [Martin Fowler](https://twitter.com/martinfowler) dedicated to the subject. 57 | --------------------------------------------------------------------------------