<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule"
	>
<channel>
	<title>Comments on: Writing Self-Confident Code</title>
	<atom:link href="http://avdi.org/devblog/2008/10/30/self-confident-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://avdi.org/devblog/2008/10/30/self-confident-code/</link>
	<description>"...the three great virtues of a programmer: laziness, impatience, and hubris." -- Larry Wall</description>
	<lastBuildDate>Wed, 03 Mar 2010 21:56:22 -0800</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Assertive Code &#124; Virtuous Code</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-763</link>
		<dc:creator>Assertive Code &#124; Virtuous Code</dc:creator>
		<pubDate>Wed, 18 Nov 2009 21:56:48 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-763</guid>
		<description>[...] Self-confident code does not ask questions about the data given to it. It enforces validity, asserts that its expectations are met, or ignores data which isn&#8217;t up to its standards. Previously we&#8217;ve looked at some methods for enforcement, using fetch() and Array(). Today I want to talk about the second tactic, assertions. [...]</description>
		<content:encoded><![CDATA[<p>[...] Self-confident code does not ask questions about the data given to it. It enforces validity, asserts that its expectations are met, or ignores data which isn&#8217;t up to its standards. Previously we&#8217;ve looked at some methods for enforcement, using fetch() and Array(). Today I want to talk about the second tactic, assertions. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: MrProper: Cleaner blocks in Ruby &#124; Teambox</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-706</link>
		<dc:creator>MrProper: Cleaner blocks in Ruby &#124; Teambox</dc:creator>
		<pubDate>Sun, 01 Nov 2009 17:27:46 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-706</guid>
		<description>[...] are better alternatives to this, like andand. I enjoyed the posst about Array-ifying values and Self confident code, [...]</description>
		<content:encoded><![CDATA[<p>[...] are better alternatives to this, like andand. I enjoyed the posst about Array-ifying values and Self confident code, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Array-ifying Values &#124; Virtuous Code</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-673</link>
		<dc:creator>Array-ifying Values &#124; Virtuous Code</dc:creator>
		<pubDate>Thu, 22 Oct 2009 00:06:47 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-673</guid>
		<description>[...] Now go forth, and write self-confident code!tweetcount_url=&#039;http://avdi.org/devblog/2009/10/21/array-ifying-values/&#039;;tweetcount_title=&#039;Array-ifying Values&#039;;tweetcount_short_url=&#039;http://bit.ly/4s6jg2&#039;;tweetcount_cnt=1;tweetcount_size=&#039;small&#039;;tweetcount_api_key=&#039;R_350d7294f25ec925b86f310039d41d2f&#039;;SHARETHIS.addEntry({ title: &quot;Array-ifying Values&quot;, url: &quot;http://avdi.org/devblog/2009/10/21/array-ifying-values/&quot; });  This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. [...]</description>
		<content:encoded><![CDATA[<p>[...] Now go forth, and write self-confident code!tweetcount_url=&#8217;http://avdi.org/devblog/2009/10/21/array-ifying-values/&#8217;;tweetcount_title=&#8217;Array-ifying Values&#8217;;tweetcount_short_url=&#8217;http://bit.ly/4s6jg2&#8242;;tweetcount_cnt=1;tweetcount_size=&#8217;small&#8217;;tweetcount_api_key=&#8217;R_350d7294f25ec925b86f310039d41d2f&#8217;;SHARETHIS.addEntry({ title: &#8220;Array-ifying Values&#8221;, url: &#8220;http://avdi.org/devblog/2009/10/21/array-ifying-values/&#8221; });  This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Wilden</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-195</link>
		<dc:creator>Mark Wilden</dc:creator>
		<pubDate>Mon, 03 Nov 2008 13:50:29 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-195</guid>
		<description>I don&#039;t think &quot;something went wrong somewhere&quot; is ever a valid value. :) In fact, I think that&#039;s the real usefulness of this article: Don&#039;t code defensively, assuming that you might have screwed up somewhere and therefore need to put up safety nets. Just do it right in the first place (and use automated testing to define &quot;right&quot;). &lt;br&gt;&lt;br&gt;As for using one representation for two concepts, that&#039;s a valid argument, which is behind the anti-NULL-ers like Chris Date. I&#039;m on the other side of that argument (the Codd side) and have no problem with the idea that nil represents a &quot;non-value,&quot; especially in favor of fabrications like 9/9/99. That&#039;s what nil was designed to do. I&#039;ve used languages without it (e.g. C) and I&#039;m glad to have it. But as I indicated above, this isn&#039;t an argument that&#039;s going to get won any time soon. :)</description>
		<content:encoded><![CDATA[<p>I don&#39;t think &#8220;something went wrong somewhere&#8221; is ever a valid value. <img src='http://avdi.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  In fact, I think that&#39;s the real usefulness of this article: Don&#39;t code defensively, assuming that you might have screwed up somewhere and therefore need to put up safety nets. Just do it right in the first place (and use automated testing to define &#8220;right&#8221;). </p>
<p>As for using one representation for two concepts, that&#39;s a valid argument, which is behind the anti-NULL-ers like Chris Date. I&#39;m on the other side of that argument (the Codd side) and have no problem with the idea that nil represents a &#8220;non-value,&#8221; especially in favor of fabrications like 9/9/99. That&#39;s what nil was designed to do. I&#39;ve used languages without it (e.g. C) and I&#39;m glad to have it. But as I indicated above, this isn&#39;t an argument that&#39;s going to get won any time soon. <img src='http://avdi.org/devblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Captain Hammer</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-194</link>
		<dc:creator>Captain Hammer</dc:creator>
		<pubDate>Mon, 03 Nov 2008 12:17:10 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-194</guid>
		<description>Mark -- representing missing information is an important topic.  There&#039;s nothing wrong (to my mind) with using &#039;nil&#039; to represent a missing birth date.  The problem is that nil is also a perfectly valid value for &#039;something went wrong somewhere&#039;.  So now we have a value with two meanings.  It doesn&#039;t matter how you choose to represent a missing value -- as long as that representation isn&#039;t already in use.</description>
		<content:encoded><![CDATA[<p>Mark &#8212; representing missing information is an important topic.  There&#39;s nothing wrong (to my mind) with using &#39;nil&#39; to represent a missing birth date.  The problem is that nil is also a perfectly valid value for &#39;something went wrong somewhere&#39;.  So now we have a value with two meanings.  It doesn&#39;t matter how you choose to represent a missing value &#8212; as long as that representation isn&#39;t already in use.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark Wilden</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-192</link>
		<dc:creator>Mark Wilden</dc:creator>
		<pubDate>Fri, 31 Oct 2008 17:25:04 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-192</guid>
		<description>This has been an issue in the database community for a long time. The essential question is, how do you represent missing information? Take birth date, for example. Do you refuse to allow people without birth dates in your code? Do you give them a default birthdate (??). Or do you recognize that nil is a perfectly valid value for a variable that holds a birth date, and deal with it accordingly?</description>
		<content:encoded><![CDATA[<p>This has been an issue in the database community for a long time. The essential question is, how do you represent missing information? Take birth date, for example. Do you refuse to allow people without birth dates in your code? Do you give them a default birthdate (??). Or do you recognize that nil is a perfectly valid value for a variable that holds a birth date, and deal with it accordingly?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Shannon -jj Behrens</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-191</link>
		<dc:creator>Shannon -jj Behrens</dc:creator>
		<pubDate>Fri, 31 Oct 2008 17:11:18 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-191</guid>
		<description>&gt; Code that constantly checks if things are null has an insecurity complex, always second-guessing itself. Make your code self-confident. Eliminate null checks wherever you can.&lt;br&gt;&lt;br&gt;I agree 100%</description>
		<content:encoded><![CDATA[<p>&gt; Code that constantly checks if things are null has an insecurity complex, always second-guessing itself. Make your code self-confident. Eliminate null checks wherever you can.</p>
<p>I agree 100%</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sammy Larbi</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-190</link>
		<dc:creator>Sammy Larbi</dc:creator>
		<pubDate>Fri, 31 Oct 2008 11:34:18 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-190</guid>
		<description>I&#039;ve always called the code with tons of null checks &quot;paranoid code.&quot; I like that you&#039;ve called the opposite &quot;self confident.&quot; That&#039;s a good phrase for it.</description>
		<content:encoded><![CDATA[<p>I&#39;ve always called the code with tons of null checks &#8220;paranoid code.&#8221; I like that you&#39;ve called the opposite &#8220;self confident.&#8221; That&#39;s a good phrase for it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: avdi</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-189</link>
		<dc:creator>avdi</dc:creator>
		<pubDate>Thu, 30 Oct 2008 19:45:16 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-189</guid>
		<description>On a second reading I think we&#039;re mostly on the same page.  I don&#039;t really have a problem with using assert() a lot.  assert() isn&#039;t a conditional - it says &quot;I never, EVER expect this to be null&quot;.  I don&#039;t have to write a unit test to test that my code handles the null and non-null cases correctly, because the null case will always crash. What I&#039;m advocating against is code that tries to handle nulls as an expected case.</description>
		<content:encoded><![CDATA[<p>On a second reading I think we&#39;re mostly on the same page.  I don&#39;t really have a problem with using assert() a lot.  assert() isn&#39;t a conditional &#8211; it says &#8220;I never, <span class="caps">EVER </span>expect this to be null&#8221;.  I don&#39;t have to write a unit test to test that my code handles the null and non-null cases correctly, because the null case will always crash. What I&#39;m advocating against is code that tries to handle nulls as an expected case.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: avdi</title>
		<link>http://avdi.org/devblog/2008/10/30/self-confident-code/comment-page-1/#comment-188</link>
		<dc:creator>avdi</dc:creator>
		<pubDate>Thu, 30 Oct 2008 19:40:08 +0000</pubDate>
		<guid isPermaLink="false">http://avdi.org/devblog/2008/10/30/death-to-nil/#comment-188</guid>
		<description>In Rails, if I have something that may or may not be displayed I like to wrap that in a helper rather than put a conditional in the view.&lt;br&gt;&lt;br&gt;But Rails views are smelly in general, because as the least-OO part of Rails they are the hardest part to apply conventional OO patterns and idioms to.</description>
		<content:encoded><![CDATA[<p>In Rails, if I have something that may or may not be displayed I like to wrap that in a helper rather than put a conditional in the view.</p>
<p>But Rails views are smelly in general, because as the least-OO part of Rails they are the hardest part to apply conventional OO patterns and idioms to.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.593 seconds -->
