<?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: Encapsulation and thinking behaviorally</title>
	<atom:link href="http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/feed/" rel="self" type="application/rss+xml" />
	<link>http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/</link>
	<description>Strong opinions, weakly held</description>
	<lastBuildDate>Sat, 25 May 2013 16:53:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
	<item>
		<title>By: Vladan Strigo</title>
		<link>http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/#comment-965</link>
		<dc:creator>Vladan Strigo</dc:creator>
		<pubDate>Wed, 22 Oct 2008 16:51:49 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/21/encapsulation-and-thinking-behaviorally.aspx#comment-965</guid>
		<description>Hi Jimmy,

I am afraid that I am having some similar misconceptions as you&#039;ve had. Your post helped me put a finger on them. Only, this sounds great for applications which are geared towards the business user (=client application).

But what about specs for parts of frameworks? those are still geared towards users - but technical ones?

Example... UnitOfWorkGateway:

Context:
When_UnitOfWorkGateway_is_used_to_start_an_non_nested_Unit_repetedly_2_times

Specs:
- Then_the_first_Unit_should_be_created
- And_Gateway_IsUnitStarted_for_first_Unit_should_be_true
- And_second_Unit_should_be_created
- And_first _Unit_and_second_Unit_should_be_the_equal


How do you see these being expressed in the context of your post (which is I think on the correct track)?


Thanks,
Vladan</description>
		<content:encoded><![CDATA[<p>Hi Jimmy,</p>
<p>I am afraid that I am having some similar misconceptions as you&#8217;ve had. Your post helped me put a finger on them. Only, this sounds great for applications which are geared towards the business user (=client application).</p>
<p>But what about specs for parts of frameworks? those are still geared towards users &#8211; but technical ones?</p>
<p>Example&#8230; UnitOfWorkGateway:</p>
<p>Context:<br />
When_UnitOfWorkGateway_is_used_to_start_an_non_nested_Unit_repetedly_2_times</p>
<p>Specs:<br />
- Then_the_first_Unit_should_be_created<br />
- And_Gateway_IsUnitStarted_for_first_Unit_should_be_true<br />
- And_second_Unit_should_be_created<br />
- And_first _Unit_and_second_Unit_should_be_the_equal</p>
<p>How do you see these being expressed in the context of your post (which is I think on the correct track)?</p>
<p>Thanks,<br />
Vladan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jimmy Bogard</title>
		<link>http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/#comment-964</link>
		<dc:creator>Jimmy Bogard</dc:creator>
		<pubDate>Tue, 21 Oct 2008 14:05:02 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/21/encapsulation-and-thinking-behaviorally.aspx#comment-964</guid>
		<description>@Colin

It&#039;s not that setters are completely bad, just that they often don&#039;t capture the &quot;why&quot;.  Why did the value change, what was the business motivation behind that behavior.  That&#039;s often missing when the responsibility for maintaining correct Entity state is spread throughout the application.</description>
		<content:encoded><![CDATA[<p>@Colin</p>
<p>It&#8217;s not that setters are completely bad, just that they often don&#8217;t capture the &#8220;why&#8221;.  Why did the value change, what was the business motivation behind that behavior.  That&#8217;s often missing when the responsibility for maintaining correct Entity state is spread throughout the application.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott Bellware</title>
		<link>http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/#comment-963</link>
		<dc:creator>Scott Bellware</dc:creator>
		<pubDate>Tue, 21 Oct 2008 12:55:11 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/21/encapsulation-and-thinking-behaviorally.aspx#comment-963</guid>
		<description>Jimmy,

Saying that the spec language is business-centric still betrays a technology-centric bias.

This language is as business-centric as the code is. Everything in a solution is business-centric - even the lambda expressions.

The point I&#039;ve been making for a year or so is to &quot;describe the experience, not the implementation&quot;.

Another way to say this is that specifications are written in user goal language.

To say something is &quot;business-centric&quot; is to speak from a programmer&#039;s biases and perspective with a lack of consciousness of the bias and perspective.</description>
		<content:encoded><![CDATA[<p>Jimmy,</p>
<p>Saying that the spec language is business-centric still betrays a technology-centric bias.</p>
<p>This language is as business-centric as the code is. Everything in a solution is business-centric &#8211; even the lambda expressions.</p>
<p>The point I&#8217;ve been making for a year or so is to &#8220;describe the experience, not the implementation&#8221;.</p>
<p>Another way to say this is that specifications are written in user goal language.</p>
<p>To say something is &#8220;business-centric&#8221; is to speak from a programmer&#8217;s biases and perspective with a lack of consciousness of the bias and perspective.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://lostechies.com/jimmybogard/2008/10/21/encapsulation-and-thinking-behaviorally/#comment-962</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Tue, 21 Oct 2008 12:48:53 +0000</pubDate>
		<guid isPermaLink="false">/blogs/jimmy_bogard/archive/2008/10/21/encapsulation-and-thinking-behaviorally.aspx#comment-962</guid>
		<description>Agree on language, as you say &quot;When_completing_a_quote_from_an_order_place&quot; does what it says on the tin (and in business language). 

I can also definitely see BDD helping us see where a responsibility and in this case it makes sense to place the responsibility on Order. I&#039;d go a step further and say that the default for domain related behavior should be that its in a method in the domain (unless its workflow/process logic that sometimes needs to sit outside the domain). If you go with this mindset then you&#039;re really thinking what Entity/Value Object (or as a fallback Service) should this behavior go on, which I think can be very useful.

Still doesn&#039;t turn me against setters though, I can see the sense in an almost complete ban on setters but even if you do that people without a good design mindset will just find another way of writing procedural code. I guess my thinking is still that good developers will make good use of setters in the domain and will know when to use a method.</description>
		<content:encoded><![CDATA[<p>Agree on language, as you say &#8220;When_completing_a_quote_from_an_order_place&#8221; does what it says on the tin (and in business language). </p>
<p>I can also definitely see BDD helping us see where a responsibility and in this case it makes sense to place the responsibility on Order. I&#8217;d go a step further and say that the default for domain related behavior should be that its in a method in the domain (unless its workflow/process logic that sometimes needs to sit outside the domain). If you go with this mindset then you&#8217;re really thinking what Entity/Value Object (or as a fallback Service) should this behavior go on, which I think can be very useful.</p>
<p>Still doesn&#8217;t turn me against setters though, I can see the sense in an almost complete ban on setters but even if you do that people without a good design mindset will just find another way of writing procedural code. I guess my thinking is still that good developers will make good use of setters in the domain and will know when to use a method.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
