{"id":659,"date":"2007-10-01T10:31:35","date_gmt":"2007-10-01T09:31:35","guid":{"rendered":"http:\/\/UnhinderedByTalent.com\/Phi\/?p=659"},"modified":"2007-10-01T10:31:51","modified_gmt":"2007-10-01T09:31:51","slug":"what-does-refactoring-really-mean","status":"publish","type":"post","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2007\/10\/01\/what-does-refactoring-really-mean\/","title":{"rendered":"What does refactoring <em>really<\/em> mean?"},"content":{"rendered":"<p>I just stumbled across <a href=\"http:\/\/www.oreillynet.com\/ruby\/blog\/2006\/03\/transformation.html\">this cool essay on refactoring<\/a> by Steve Yegge.  I don&#8217;t agree with everything (there&#8217;s <a href=\"http:\/\/www.oreillynet.com\/ruby\/blog\/2006\/03\/transformation.html#comment-20549\">a comment near the bottom<\/a> that I agree with a lot), but there&#8217;s some very cool stuff here about the &#8220;real&#8221; meaning of refactoring, and the importance (or lack thereof) of automated refactoring tools.<\/p>\n<p>One of my reluctances about moving to something like Ruby in my classes (and, to be fair, my programming) is that I just <em>love<\/em> <a href=\"http:\/\/refactoring.com\/\">Fowler&#8217;s book<\/a> (which I <em>have<\/em> read multiple times &#8211; I&#8217;ve taught a refactoring course three times now) and have found it <em>and<\/em> Eclipse&#8217;s refactoring menu to be life changing experiences.  I move and rename things <em>all the time<\/em> now, and having those tools absolutely makes it easier.<\/p>\n<p>That said, though, Yegge&#8217;s right that I often become so enamored of the trees of automated refactorings that I lose sight of the forest of simly trying to write clean code, and thinking carefully and sensibly about changing the code that&#8217;s already written.  Clearly many people haven&#8217;t read Fowler&#8217;s splendid book, and for them refactoring is limited to what is, in fairness, the tiny (if wonderful) little world bounded by the automated tools in Eclipse or IDEA.  That&#8217;s sad.  And sometimes my course structures (especially in Software Design and Development) arguably encourages that.  Which is far worse.<\/p>\n<p>So back up, take a deep breath, and go (re)read Fowler&#8217;s book.  I know I&#8217;ll have to rethink my concerns about the lack of refactoring tools in Ruby.  I don&#8217;t think they&#8217;ll go away completely, but I&#8217;m sure they&#8217;ll be different, and probably lessened.<\/p>\n<p>Then get back to work&#8230;<\/p>\nNo tag for this post.\n\t<h4>Related posts<\/h4>\n\t<ul class=\"st-related-posts\">\n\t<li>No related posts.<\/li>\n\t<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p>I just stumbled across this cool essay on refactoring by Steve Yegge. I don&#8217;t agree with everything (there&#8217;s a comment near the bottom that I agree with a lot), but there&#8217;s some very cool stuff here about the &#8220;real&#8221; meaning of refactoring, and the importance (or lack thereof) of automated refactoring tools. One of my &hellip; <a href=\"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2007\/10\/01\/what-does-refactoring-really-mean\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;What does refactoring <em>really<\/em> mean?&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_newsletter_tier_id":0},"categories":[1],"tags":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p90sy-aD","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"jetpack-related-posts":[{"id":1012,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2009\/06\/20\/looking-for-textbook-recommendations-os-networking-sysadmin-fuzzy-logic-and-refactoring\/","url_meta":{"origin":659,"position":0},"title":"Looking for (text)book recommendations: OS, Networking, Sysadmin; Fuzzy logic; and Refactoring","author":"Nic McPhee","date":"20 Jun 09","format":false,"excerpt":"Some deluded people believe that textbook orders for Fall Semester were due a month ago, but I'm never, ever close to on-time on these things, and am just now getting to it in a serious way. I'm teaching three courses in the fall: Models of Computing Systems Fuzzy logic and\u2026","rel":"","context":"In &quot;Books&quot;","block_context":{"text":"Books","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/writing\/books\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":422,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2007\/01\/05\/422\/","url_meta":{"origin":659,"position":1},"title":"The importance of language and notation in problem solving","author":"Nic McPhee","date":"5 Jan 07","format":false,"excerpt":"Found this in the slides for a presentation by Jim Weirich entitled \"10 things every Java programmer should know about Ruby\": A language that doesn\u2019t affect the way you think about programming is not worth knowing \u2014 Alan Perlis Amen, brother! A little searching reveals that it was included in\u2026","rel":"","context":"In &quot;Computing&quot;","block_context":{"text":"Computing","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/computing\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":298,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2006\/01\/13\/links-for-2006-01-13\/","url_meta":{"origin":659,"position":2},"title":"links for 2006-01-13","author":"Nic McPhee","date":"13 Jan 06","format":false,"excerpt":"Extreme Programming: A Gentle Introduction. An excellent overview of the key ideas of extreme programming\/agile development. (tags: agile code design development planning programming project projectmanagement software testing xp methodology UMM:CSci3601) XProgramming.com - an Agile Software Development Resource Ron Jeffries' site on XP. I really don't like the design, but there's\u2026","rel":"","context":"In &quot;Daily links&quot;","block_context":{"text":"Daily links","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/daily-links\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1573,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2012\/07\/21\/an-unsolicited-forward-to-an-unfinished-book\/","url_meta":{"origin":659,"position":3},"title":"An unsolicited forward to an unfinished book","author":"Nic McPhee","date":"21 Jul 12","format":false,"excerpt":"Bill Tozier was generous enough to share an early draft of his book-in-progress, currently entitled Answer factories: The engineering of useful surprises. It's a true joy, and I'm really looking forward to being able to read the \"finished\" work. It's a project oriented book, though, which means that to really\u2026","rel":"","context":"In &quot;Books&quot;","block_context":{"text":"Books","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/writing\/books\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":233,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2005\/09\/11\/wikis-four-years-on-some-thoughts\/","url_meta":{"origin":659,"position":4},"title":"Wikis four years on:  Some thoughts","author":"Nic McPhee","date":"11 Sep 05","format":false,"excerpt":"In a comment on a previous post, DesertDonkey asked my opinion on the feasibility of a wiki for the development of an internal knowledge base. I started my reply as a comment, but it grew beyond all sensible proportions and I decided that it really needed to be a post\u2026","rel":"","context":"In &quot;Computing&quot;","block_context":{"text":"Computing","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/computing\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":305,"url":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/2006\/01\/19\/links-for-2006-01-19\/","url_meta":{"origin":659,"position":5},"title":"links for 2006-01-19","author":"Nic McPhee","date":"19 Jan 06","format":false,"excerpt":"JUnit-addons A cool set of JUnit extensions with a nice set of utility methods and classes to check for correct implementation of methods such as equals and compareTo. (tags: java programming tdd test testing tools unittest junit) Scout: Find your photographs in Flickr's Explore A cool tool that searches through\u2026","rel":"","context":"In &quot;Daily links&quot;","block_context":{"text":"Daily links","link":"https:\/\/UnhinderedByTalent.com\/Phi\/archives\/category\/daily-links\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/posts\/659"}],"collection":[{"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/comments?post=659"}],"version-history":[{"count":0,"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/posts\/659\/revisions"}],"wp:attachment":[{"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/media?parent=659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/categories?post=659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/UnhinderedByTalent.com\/Phi\/wp-json\/wp\/v2\/tags?post=659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}