<?xml version="1.0"?>
<rss version="2.0">
<channel>

  
<title>Coding the Architecture - The Neverending Abstraction</title>
<link>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html</link>
<description>A common issue I see is the temptation to solve every problem by introducing an extra layer of abstraction. Abstractions aren&#039;t a problem in themselves but I&#039;m seeing situations where developers are trying to think of ever more bizarre situations (that ...</description>
<language>en</language>
<managingEditor>Robert Annett</managingEditor>
<lastBuildDate>Tue, 15 May 2007 18:18:51 GMT</lastBuildDate>
  
  

  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  
  <item>
    <title>Re: The Neverending Abstraction</title>
    <link>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1179301209449</link>
    <description>
      I&#039;d personally (and this could turn into a religious argument to compete with emacs verses vi) see Party as an interface which defines the &lt;i&gt;behaviour&lt;/i&gt; of being a party to a legal agreement rather than as a superclass with shared attributes.
&lt;p&gt;
This is subtly different to having a superclass of entity and trying to share/shoehorn all the attributes there.
    </description>
    <author>Robert Annett</author>
    <comments>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1179301209449</guid>
    <pubDate>Wed, 16 May 2007 07:40:09 GMT</pubDate>
  </item>
  
  <item>
    <title>Re: The Neverending Abstraction</title>
    <link>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1179253131120</link>
    <description>
      I was with you until you got to the legal identifiers.  Don&#039;t know if you are aware of it or not but the example you cited is a recognized (and useful, IMHO) analysis pattern called the Party pattern where the super-class of Person and Organization is called &#034;Party&#034;.  The context is that a person or an organization can be party to a business transaction.
    </description>
    <author>Max Lancaster</author>
    <comments>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1179253131120</guid>
    <pubDate>Tue, 15 May 2007 18:18:51 GMT</pubDate>
  </item>
  
  <item>
    <title>Re: The Neverending Abstraction</title>
    <link>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1178783910293</link>
    <description>
      This sounds rather familiar! I remember when I started coding I always wanted to write the most generic re-usable thing in the world ever... As time went on I began to realise that I was not writing a closed source package. I was writing some code to do a job, and that the code (from my companies point of view) was open... &lt;br /&gt;
Now I am a great fan of the JAGNI principle (You Ain&#039;t Going to Need It). A rule of thumb I use is to only create a super class if there is a serious chance of actually putting some code in there. If you are going to end up with an &#039;empty&#039; super class you have to seriously wonder if it is adding any value.... &lt;br /&gt; &lt;br /&gt;

Tom
    </description>
    <author>Tom Grey</author>
    <comments>http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comments</comments>
    <guid isPermaLink="true">http://www.codingthearchitecture.com/2007/05/04/the_neverending_abstraction.html#comment1178783910293</guid>
    <pubDate>Thu, 10 May 2007 07:58:30 GMT</pubDate>
  </item>
  
  </channel>
</rss>
