<?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: Coding: Coupling and Expressiveness</title>
	<atom:link href="http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/</link>
	<description>Thoughts on Software Development</description>
	<lastBuildDate>Thu, 18 Mar 2010 13:53:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Coding: Connascence &#8211; Some examples at Mark Needham</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-25674</link>
		<dc:creator>Coding: Connascence &#8211; Some examples at Mark Needham</dc:creator>
		<pubDate>Wed, 28 Oct 2009 12:44:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-25674</guid>
		<description>[...] think this principal is quite similar to the idea of coupling which we seem to use more frequently these days but I found it quite compelling that as I was [...]</description>
		<content:encoded><![CDATA[<p>[...] think this principal is quite similar to the idea of coupling which we seem to use more frequently these days but I found it quite compelling that as I was [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Coding: Reduce fields, delay calculations at Mark Needham</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-22145</link>
		<dc:creator>Coding: Reduce fields, delay calculations at Mark Needham</dc:creator>
		<pubDate>Wed, 02 Sep 2009 13:54:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-22145</guid>
		<description>[...] &#039;SomeObject&#039; and &#039;Dependency1&#8242; and &#039;Dependency2&#8242; by storing those in fields and I was pondering the wisdom of doing this sort of thing in a previous post but I think I prefer to take this coupling over the alternative [...]</description>
		<content:encoded><![CDATA[<p>[...] 'SomeObject' and 'Dependency1&#8242; and 'Dependency2&#8242; by storing those in fields and I was pondering the wisdom of doing this sort of thing in a previous post but I think I prefer to take this coupling over the alternative [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andy Palmer</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-22107</link>
		<dc:creator>Andy Palmer</dc:creator>
		<pubDate>Tue, 01 Sep 2009 10:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-22107</guid>
		<description>I was definitely thinking TinyType too.

I wouldn&#039;t worry about LoggedInUser being created elsewhere. The best kind of system is the one that is simple enough to be used in previously unthought ways :-)</description>
		<content:encoded><![CDATA[<p>I was definitely thinking TinyType too.</p>
<p>I wouldn't worry about LoggedInUser being created elsewhere. The best kind of system is the one that is simple enough to be used in previously unthought ways <img src='http://www.markhneedham.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Coding: Coupling and Expressiveness at Mark Needham &#124; Coupling live today</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21792</link>
		<dc:creator>Coding: Coupling and Expressiveness at Mark Needham &#124; Coupling live today</dc:creator>
		<pubDate>Fri, 28 Aug 2009 05:54:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21792</guid>
		<description>[...] connector which is the loosest identify of connector that we crapper &#8230;     Excerpt from:  Coding: Coupling and Expressiveness at Mark Needham     Posted in Uncategorized &#124; Tags: a-nice-post, and-from, cohesion-and, different-types, [...]</description>
		<content:encoded><![CDATA[<p>[...] connector which is the loosest identify of connector that we crapper &#8230;     Excerpt from:  Coding: Coupling and Expressiveness at Mark Needham     Posted in Uncategorized | Tags: a-nice-post, and-from, cohesion-and, different-types, [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: DotNetShoutout</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21775</link>
		<dc:creator>DotNetShoutout</dc:creator>
		<pubDate>Thu, 27 Aug 2009 13:49:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21775</guid>
		<description>&lt;strong&gt;Coding: Coupling and Expressiveness - Mark Needham...&lt;/strong&gt;

Thank you for submitting this cool story - Trackback from DotNetShoutout...</description>
		<content:encoded><![CDATA[<p><strong>Coding: Coupling and Expressiveness &#8211; Mark Needham&#8230;</strong></p>
<p>Thank you for submitting this cool story &#8211; Trackback from DotNetShoutout&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitter Trackbacks for Coding: Coupling and Expressiveness at Mark Needham [markhneedham.com] on Topsy.com</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21732</link>
		<dc:creator>Twitter Trackbacks for Coding: Coupling and Expressiveness at Mark Needham [markhneedham.com] on Topsy.com</dc:creator>
		<pubDate>Wed, 26 Aug 2009 00:39:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21732</guid>
		<description>[...] Coding: Coupling and Expressiveness at Mark Needham  www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness &#8211; view page &#8211; cached  Thoughts on Software Development &#8212; From the page [...]</description>
		<content:encoded><![CDATA[<p>[...] Coding: Coupling and Expressiveness at Mark Needham  <a href="http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness" rel="nofollow">http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness</a> &ndash; view page &ndash; cached  Thoughts on Software Development &mdash; From the page [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zach Shaw</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21728</link>
		<dc:creator>Zach Shaw</dc:creator>
		<pubDate>Tue, 25 Aug 2009 22:24:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21728</guid>
		<description>You know, another way to cut down on people abusing this method, keeping down the coupling, and revealing the intent (maybe :P) could also be to invert the control of the Retrieve method, it might be a little ugly, but you could do something like:

void Retrieve(CustomerReader customerReader) {
     id = customerReader.getCustomerId();
     //look stuff up
     customerReader.setCustomer(theCustomerWeFound);
}

Where LoggedInUser implemented CustomerReader.

If I was presented with this method I would look for types that implemented CustomerReader to see who I should be passing into the method, and probably not implementing my own type to pass in.</description>
		<content:encoded><![CDATA[<p>You know, another way to cut down on people abusing this method, keeping down the coupling, and revealing the intent (maybe <img src='http://www.markhneedham.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ) could also be to invert the control of the Retrieve method, it might be a little ugly, but you could do something like:</p>
<p>void Retrieve(CustomerReader customerReader) {<br />
     id = customerReader.getCustomerId();<br />
     //look stuff up<br />
     customerReader.setCustomer(theCustomerWeFound);<br />
}</p>
<p>Where LoggedInUser implemented CustomerReader.</p>
<p>If I was presented with this method I would look for types that implemented CustomerReader to see who I should be passing into the method, and probably not implementing my own type to pass in.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave Cameron</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21726</link>
		<dc:creator>Dave Cameron</dc:creator>
		<pubDate>Tue, 25 Aug 2009 21:22:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21726</guid>
		<description>I was thinking &quot;TinyType!&quot; while reading this. I think CM and Zach have already suggested essentially a TinyType. Or is TinyType significantly different from a class with one field?</description>
		<content:encoded><![CDATA[<p>I was thinking "TinyType!" while reading this. I think CM and Zach have already suggested essentially a TinyType. Or is TinyType significantly different from a class with one field?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zach Shaw</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21725</link>
		<dc:creator>Zach Shaw</dc:creator>
		<pubDate>Tue, 25 Aug 2009 18:37:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21725</guid>
		<description>What jumped out at me when I first looked at the code was that I&#039;ve gotten yelled at plenty for passing around primitives. So I can&#039;t help but ask, why not pass a CustomerId object instead of a String? The CustomerId could simply hold the string, but it would be clearer from the API perspective what the method wants, and you&#039;d cut down on the coupling.</description>
		<content:encoded><![CDATA[<p>What jumped out at me when I first looked at the code was that I've gotten yelled at plenty for passing around primitives. So I can't help but ask, why not pass a CustomerId object instead of a String? The CustomerId could simply hold the string, but it would be clearer from the API perspective what the method wants, and you'd cut down on the coupling.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Ammerman</title>
		<link>http://www.markhneedham.com/blog/2009/08/25/coding-coupling-and-expressiveness/comment-page-1/#comment-21719</link>
		<dc:creator>Chris Ammerman</dc:creator>
		<pubDate>Tue, 25 Aug 2009 15:28:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.markhneedham.com/blog/?p=1577#comment-21719</guid>
		<description>Cross-layer coupling is bad, but a certain amount of coupling among classes and interfaces *within* the domain layer is expected.  And since the interface of a repository is generally considered to be part of the domain, I tend to think that coupling the repository interface to a domain object such as a LoggedInUser is perfectly natural.</description>
		<content:encoded><![CDATA[<p>Cross-layer coupling is bad, but a certain amount of coupling among classes and interfaces *within* the domain layer is expected.  And since the interface of a repository is generally considered to be part of the domain, I tend to think that coupling the repository interface to a domain object such as a LoggedInUser is perfectly natural.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
