<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: The Programmer&#8217;s Delimma: When and How to Refactor your Codebase</title>
	<atom:link href="http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/</link>
	<description>Making stuff work on the other side of the request.</description>
	<lastBuildDate>Fri, 10 Sep 2010 06:42:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Pinderkent</title>
		<link>http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/comment-page-1/#comment-31745</link>
		<dc:creator>Pinderkent</dc:creator>
		<pubDate>Tue, 20 Jan 2009 01:35:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=697#comment-31745</guid>
		<description>&lt;strong&gt;Code refactoring is a continual process....&lt;/strong&gt;

Everyone faced with a large and practical software system knows that there are parts of their system that could be vastly improved. For some projects, we get to the point where the cost and risk of making even minor changes far outweighs the benefits t...</description>
		<content:encoded><![CDATA[<p><strong>Code refactoring is a continual process&#8230;.</strong></p>
<p>Everyone faced with a large and practical software system knows that there are parts of their system that could be vastly improved. For some projects, we get to the point where the cost and risk of making even minor changes far outweighs the benefits t&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Carter</title>
		<link>http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/comment-page-1/#comment-31718</link>
		<dc:creator>Nick Carter</dc:creator>
		<pubDate>Fri, 16 Jan 2009 05:00:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=697#comment-31718</guid>
		<description>I&#039;ve just gone through step 1 of your &quot;What I did with Iminta&quot; steps for JazzRecord. My changes were not to move to a new version of MooTools, but to remove MooTools as a dependency. While I&#039;m a huge fan of the library, I wanted to make JazzRecord available to folks who use all libraries, and this meant making the codebase entirely agnostic.

The process took about 10 hours of straight coding last weekend, ripping out one piece of MooTools functionality and duplicating it in vanilla JS as a function in my core namespace to be used throughout the rest of the library. At each turn I had to run through my spec tests and ensure what I&#039;d done hadn&#039;t broken anything, and a few times I certainly did. But taking it one step at a time, and frequently testing, allowed me to concentrate better, come to know the libraries (both JazzRecord and MooTools) better, and most importantly, ensured quality code.

Almost each Moo method taught me something new or at least gave me an insight into how MooTools itself is written, which is great to know. Probably the most complex method I duplicated (and will probably scrap for something slightly simpler before too long) is Hash.toQueryString(). The function is recursive and somewhat hard to understand, but is key to JazzRecord&#039;s ability to distinguish modified and unmodified versions of objects. Calling $H(obj).toQueryString() was the perfect way to finally be able to compare objects for their content equality, something I&#039;d never done or needed to do in JavaScript before.

While I certainly have a bit of refactoring ahead, at least step 1 is out of the way, and for me, that means lots more people can use JazzRecord.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve just gone through step 1 of your &#8220;What I did with Iminta&#8221; steps for JazzRecord. My changes were not to move to a new version of MooTools, but to remove MooTools as a dependency. While I&#8217;m a huge fan of the library, I wanted to make JazzRecord available to folks who use all libraries, and this meant making the codebase entirely agnostic.</p>
<p>The process took about 10 hours of straight coding last weekend, ripping out one piece of MooTools functionality and duplicating it in vanilla JS as a function in my core namespace to be used throughout the rest of the library. At each turn I had to run through my spec tests and ensure what I&#8217;d done hadn&#8217;t broken anything, and a few times I certainly did. But taking it one step at a time, and frequently testing, allowed me to concentrate better, come to know the libraries (both JazzRecord and MooTools) better, and most importantly, ensured quality code.</p>
<p>Almost each Moo method taught me something new or at least gave me an insight into how MooTools itself is written, which is great to know. Probably the most complex method I duplicated (and will probably scrap for something slightly simpler before too long) is Hash.toQueryString(). The function is recursive and somewhat hard to understand, but is key to JazzRecord&#8217;s ability to distinguish modified and unmodified versions of objects. Calling $H(obj).toQueryString() was the perfect way to finally be able to compare objects for their content equality, something I&#8217;d never done or needed to do in JavaScript before.</p>
<p>While I certainly have a bit of refactoring ahead, at least step 1 is out of the way, and for me, that means lots more people can use JazzRecord.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron N.</title>
		<link>http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/comment-page-1/#comment-31700</link>
		<dc:creator>Aaron N.</dc:creator>
		<pubDate>Fri, 09 Jan 2009 21:28:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=697#comment-31700</guid>
		<description>Nice catch on the title. Fixed.</description>
		<content:encoded><![CDATA[<p>Nice catch on the title. Fixed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: miquel</title>
		<link>http://www.clientcide.com/best-practices/organizing-code/the-programmers-delima-when-and-how-to-refactor-your-codebase/comment-page-1/#comment-31698</link>
		<dc:creator>miquel</dc:creator>
		<pubDate>Fri, 09 Jan 2009 20:32:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.clientcide.com/?p=697#comment-31698</guid>
		<description>&#039;Delima&#039; in the title vs. &#039;dilemma&#039; in the body?

I know how you feel, except instead of front-end, I have back end on my family tree project, &lt;a href=&quot;http://www.hudin.org&quot; rel=&quot;nofollow&quot;&gt;hudin.org&lt;/a&gt;.  Just two days ago, I had to update something for a new server and realized it&#039;s a mess, but in this case, a full rewrite with proper class implementation in the PHP will be needed.  Still don&#039;t know of a perfect way to display a family tree though as it&#039;s an exponential hierarchy.  C&#039;est la vie.

-miquel</description>
		<content:encoded><![CDATA[<p>&#8216;Delima&#8217; in the title vs. &#8216;dilemma&#8217; in the body?</p>
<p>I know how you feel, except instead of front-end, I have back end on my family tree project, <a href="http://www.hudin.org" rel="nofollow">hudin.org</a>.  Just two days ago, I had to update something for a new server and realized it&#8217;s a mess, but in this case, a full rewrite with proper class implementation in the PHP will be needed.  Still don&#8217;t know of a perfect way to display a family tree though as it&#8217;s an exponential hierarchy.  C&#8217;est la vie.</p>
<p>-miquel</p>
]]></content:encoded>
	</item>
</channel>
</rss>
