<?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 for mentis vulgaris</title>
	<atom:link href="http://numainnovations.com/mentis-vulgaris/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://numainnovations.com/mentis-vulgaris</link>
	<description>Simple thoughts about software, business and one or two other things</description>
	<lastBuildDate>Mon, 23 Apr 2012 21:12:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Is Your Code SOLID: The Interface Segregation Principle by marketing</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/is-your-code-solid-the-interface-segregation-principle/comment-page-1/#comment-46</link>
		<dc:creator>marketing</dc:creator>
		<pubDate>Mon, 23 Apr 2012 21:12:07 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=173#comment-46</guid>
		<description>Very great post. I just stumbled upon your weblog and wished to mention that I have really loved surfing around your weblog posts. After all I&#039;ll be subscribing on your rss feed and I hope you write once more very soon!</description>
		<content:encoded><![CDATA[<p>Very great post. I just stumbled upon your weblog and wished to mention that I have really loved surfing around your weblog posts. After all I&#8217;ll be subscribing on your rss feed and I hope you write once more very soon!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Bottleneck by Sabina Nuse</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/the-bottleneck/comment-page-1/#comment-43</link>
		<dc:creator>Sabina Nuse</dc:creator>
		<pubDate>Fri, 02 Sep 2011 20:38:10 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=211#comment-43</guid>
		<description>Great info once again!! I am looking forward for more updates=)</description>
		<content:encoded><![CDATA[<p>Great info once again!! I am looking forward for more updates=)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on You want to grow your business.  Your software doesn&#8217;t. by ForumBot</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/you-want-to-grow-your-business-your-software-probably-doesnt/comment-page-1/#comment-42</link>
		<dc:creator>ForumBot</dc:creator>
		<pubDate>Mon, 13 Jun 2011 18:35:00 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=12#comment-42</guid>
		<description>no kidding,this can be a excellent blog publish,i like the thought how you set up your factors of view by authority then you definitely speak about each individually,very smart of you,consider having a brand new blog reader</description>
		<content:encoded><![CDATA[<p>no kidding,this can be a excellent blog publish,i like the thought how you set up your factors of view by authority then you definitely speak about each individually,very smart of you,consider having a brand new blog reader</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Software Craftsmen, Laws and Principles, Oh My by jason</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/software-craftsmen-laws-and-principles-oh-my/comment-page-1/#comment-32</link>
		<dc:creator>jason</dc:creator>
		<pubDate>Thu, 25 Mar 2010 20:29:39 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=289#comment-32</guid>
		<description>@Derick

I thought so -- thanks for clearing me up.

--Jason</description>
		<content:encoded><![CDATA[<p>@Derick</p>
<p>I thought so &#8212; thanks for clearing me up.</p>
<p>&#8211;Jason</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Software Craftsmen, Laws and Principles, Oh My by jason</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/software-craftsmen-laws-and-principles-oh-my/comment-page-1/#comment-31</link>
		<dc:creator>jason</dc:creator>
		<pubDate>Thu, 25 Mar 2010 20:27:55 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=289#comment-31</guid>
		<description>@Derek --

That&#039;s &lt;em&gt;exactly&lt;/em&gt; what I mean.   

Much like the free functions of C++ in Meyer&#039;s article, extension methods can be seen as an &lt;em&gt;optional&lt;/em&gt; part of a type&#039;s API.   And is a technique that improve&#039;s a type&#039;s encapsulation.   The reason I don&#039;t call the class in which extension methods are defined &quot;a type&quot;, is because it effectively isn&#039;t -- at least, not in a way that matters to a C# (or VB) programmer -- it&#039;s neither instantiable, nor inheritable.  Instead, it&#039;s a bit of a &quot;language trick&quot; that gives us the ability to define free functions and procedures (the static class is how you define a C# equivalent of a VB Module).

When I say extension methods should be &quot;correctly written&quot;, I mean all the methods in the static class in which we define extensions must only use types available in the api of the type it extends.   If we want to introduce extension methods that interact with a type our original class doesn&#039;t already know about, we should create new extension methods in a &lt;em&gt;new&lt;/em&gt; static class.  By partitioning things this way, we keep our dependencies focused, tight and flexible.</description>
		<content:encoded><![CDATA[<p>@Derek &#8211;</p>
<p>That&#8217;s <em>exactly</em> what I mean.   </p>
<p>Much like the free functions of C++ in Meyer&#8217;s article, extension methods can be seen as an <em>optional</em> part of a type&#8217;s API.   And is a technique that improve&#8217;s a type&#8217;s encapsulation.   The reason I don&#8217;t call the class in which extension methods are defined &#8220;a type&#8221;, is because it effectively isn&#8217;t &#8212; at least, not in a way that matters to a C# (or VB) programmer &#8212; it&#8217;s neither instantiable, nor inheritable.  Instead, it&#8217;s a bit of a &#8220;language trick&#8221; that gives us the ability to define free functions and procedures (the static class is how you define a C# equivalent of a VB Module).</p>
<p>When I say extension methods should be &#8220;correctly written&#8221;, I mean all the methods in the static class in which we define extensions must only use types available in the api of the type it extends.   If we want to introduce extension methods that interact with a type our original class doesn&#8217;t already know about, we should create new extension methods in a <em>new</em> static class.  By partitioning things this way, we keep our dependencies focused, tight and flexible.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Software Craftsmen, Laws and Principles, Oh My by Derek Greer</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/software-craftsmen-laws-and-principles-oh-my/comment-page-1/#comment-30</link>
		<dc:creator>Derek Greer</dc:creator>
		<pubDate>Thu, 25 Mar 2010 18:42:50 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=289#comment-30</guid>
		<description>&quot;The reason they aren’t an additional type, is (correctly written) extension methods are part of the interface or type they extend.&quot;

I&#039;m struggling to understand what you are trying to convey here.  Technically, extension methods are an additional type and are not part of the interface or type they extend.  Since I assume you understand this, I&#039;m guessing you mean they are part of the interface or type in the sense that they are part of the overall API available for working with the type.</description>
		<content:encoded><![CDATA[<p>&#8220;The reason they aren’t an additional type, is (correctly written) extension methods are part of the interface or type they extend.&#8221;</p>
<p>I&#8217;m struggling to understand what you are trying to convey here.  Technically, extension methods are an additional type and are not part of the interface or type they extend.  Since I assume you understand this, I&#8217;m guessing you mean they are part of the interface or type in the sense that they are part of the overall API available for working with the type.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Software Craftsmen, Laws and Principles, Oh My by Derick Bailey</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/software-craftsmen-laws-and-principles-oh-my/comment-page-1/#comment-29</link>
		<dc:creator>Derick Bailey</dc:creator>
		<pubDate>Thu, 25 Mar 2010 17:39:22 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=289#comment-29</guid>
		<description>you definitely understood my point :)

you&#039;re right about the point of LoD and that the code within the extension methods is what we are concerned with, not the fact that we have an extension method. I kinda-sort-of-almost hinted at what you&#039;re saying when I said &quot;There probably are scenarios where the implementation of an extension method would violate LoD and thus the extension itself would&quot;... having read the responses of others, and your response here, it&#039;s obvious that i left out some of the more important aspects of the principle and made some sweeping generalizations based on one specific circumstance, again.

great response! it got me thinking more about _why_ i said what i said, and provided some new ideas in understanding LoD.</description>
		<content:encoded><![CDATA[<p>you definitely understood my point <img src='http://numainnovations.com/mentis-vulgaris/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>you&#8217;re right about the point of LoD and that the code within the extension methods is what we are concerned with, not the fact that we have an extension method. I kinda-sort-of-almost hinted at what you&#8217;re saying when I said &#8220;There probably are scenarios where the implementation of an extension method would violate LoD and thus the extension itself would&#8221;&#8230; having read the responses of others, and your response here, it&#8217;s obvious that i left out some of the more important aspects of the principle and made some sweeping generalizations based on one specific circumstance, again.</p>
<p>great response! it got me thinking more about _why_ i said what i said, and provided some new ideas in understanding LoD.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Exceptions are Easy.   Except when they&#8217;re not. by mentis vulgaris &#187; Exceptions are Easy. Except When They&#8217;re Not (Part 2)</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/exceptions-are-easy-except-when-theyre-not/comment-page-1/#comment-27</link>
		<dc:creator>mentis vulgaris &#187; Exceptions are Easy. Except When They&#8217;re Not (Part 2)</dc:creator>
		<pubDate>Tue, 02 Mar 2010 16:40:02 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=209#comment-27</guid>
		<description>[...] a previous post, I posed two questions to my readers (all √(-1) of them): whether a body of code was exception [...]</description>
		<content:encoded><![CDATA[<p>[...] a previous post, I posed two questions to my readers (all √(-1) of them): whether a body of code was exception [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on The Single Responsibility Principle by mentis vulgaris &#187; Encapsulating Your Way To Better Unit Tests</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/the-single-responsibility-principle/comment-page-1/#comment-26</link>
		<dc:creator>mentis vulgaris &#187; Encapsulating Your Way To Better Unit Tests</dc:creator>
		<pubDate>Tue, 02 Mar 2010 16:12:16 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=62#comment-26</guid>
		<description>[...] honor the Single Responsibility Principle: No database involved. No System.Configuration.ConfigurationManager. If high cohesion and low [...]</description>
		<content:encoded><![CDATA[<p>[...] honor the Single Responsibility Principle: No database involved. No System.Configuration.ConfigurationManager. If high cohesion and low [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Qualities of Good Unit Tests by mentis vulgaris &#187; Encapsulating Your Way To Better Unit Tests</title>
		<link>http://numainnovations.com/mentis-vulgaris/jason/software-development/qualities-of-good-unit-tests/comment-page-1/#comment-25</link>
		<dc:creator>mentis vulgaris &#187; Encapsulating Your Way To Better Unit Tests</dc:creator>
		<pubDate>Tue, 02 Mar 2010 16:06:26 +0000</pubDate>
		<guid isPermaLink="false">http://numainnovations.com/mentis-vulgaris/?p=206#comment-25</guid>
		<description>[...] an earlier blog, I discussed the qualities of good unit tests. Primarily, good unit tests are fast, isolate the bugs, repeatable, self-validating and [...]</description>
		<content:encoded><![CDATA[<p>[...] an earlier blog, I discussed the qualities of good unit tests. Primarily, good unit tests are fast, isolate the bugs, repeatable, self-validating and [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>

