<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cwash into software &#187; software</title>
	<atom:link href="http://cwash.org/tag/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://cwash.org</link>
	<description>+= construction + craftsmanship;</description>
	<lastBuildDate>Thu, 29 Sep 2011 04:23:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>What I&#8217;d Tell Myself About Design If I Were Just Beginning</title>
		<link>http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=what-id-tell-myself-about-design-if-i-were-just-beginning</link>
		<comments>http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 02:25:26 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[Meta/Blog]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[CapTech]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=104</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/";</script>From all the time I&#8217;ve spent learning design, there are a handful of things I&#8217;d hope to remember or re-read if I were to ever get amnesia and have to start all over again.  For new comers and experts alike, I&#8217;d like to share a few ideas about design worth thinking about through musings and [...]]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><address style="text-align: left;">From all the time I&#8217;ve spent learning design, there are a handful of things I&#8217;d hope to remember or re-read if I were to ever get amnesia and have to start all over again.  For new comers and experts alike, I&#8217;d like to share a few ideas about design worth thinking about through musings and links to other material that has helped form my opinions (some more relevant than others).</address>
<address style="text-align: left;"><span id="more-104"></span><br />
</address>
<blockquote>
<p style="text-align: right;">The competent programmer is fully aware of the strictly limited size of his (or her) own skull; therefore he (or she) approaches the programming task in full humility, and among other things he (or she) avoids clever tricks like the plague.<br />
–E.W. Dijkstra</p>
</blockquote>
<p>Designers are something of an enigma to most people; however, the fruits of their labor are largely understood, well used and appreciated. Design is often considered to be a purely aesthetic matter: a matter of taste, of style, of opinion; we know a good design when it when we see it.  But many times we can&#8217;t quite put our thumb on <em>why</em> it&#8217;s good design, or what makes it well-thought out, or pleasing. Maybe some of us can articulate what it is we like about design, but few connect the dots enough to notice recurring qualities in our favorite designs or think about <a href="http://en.wikipedia.org/wiki/Golden_ratio">underlying truths beneath those qualities</a>.  Even fewer still have the experience to know <em>when to apply these qualities, within the proper context</em> to produce a good design.<img class="alignright size-medium wp-image-373" title="parthenon" src="http://cwash.org/wp-content/uploads/2009/07/parthenon-300x199.jpg" alt="parthenon" width="300" height="199" /></p>
<p>Programmers are equally if not more engimatic to general society.  Perhaps on the surface for <a href="http://xkcd.com/378/">many</a> <a href="http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion">different</a> <a href="http://www.codethinked.com/post/2007/12/06/The-Programmer-Dress-Code.aspx">reasons</a>.  But, coincidentally developers are designing all the time; could this play a part, perhaps?  Is this why we refer to the most experienced of our profession as &#8220;<em>architects</em>?&#8221;  Aren&#8217;t we, by way of programming systems and wiring them together, inherently striving for greatness as <em>designers</em>?</p>
<p>Especially when you&#8217;re inexperienced, you&#8217;re very much focused on learning what it is about a design that you find compelling, agreeable, or pleasing.  We value a good design so much that we spend a lot of time studying, talking about and debating what makes a good design.  As the narrator (Jack?) in <em>Fight Club</em> admits he had become &#8220;a slave to the <em>IKEA nesting instinct</em>,&#8221; so too, I find myself in willing servitude of the <em>design pattern instinct</em> at times.  More often nowadays I stop and catch myself, and I&#8217;d like to think I&#8217;m not the only one with this premonition.  Too quick are we to whip out our <a href="http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612">design patterns books</a> (especially right after we&#8217;ve finished them) and, as the first order of business, <a href="http://blog.jovan-s.com/2009/07/29/do-not-use-design-patterns-upfront/">go to town</a> <a href="http://blogs.captechventures.com/blog/andy-pemberton/knowing-when-apply-design-pattern">solving problems we don&#8217;t have</a>.</p>
<p>Few products today need to ship in shrink wrapped boxes as they once traditionally had to.  The connectedness of the Internet, coupled with all of the modern advances in hardware have fundamentally changed the way we look at developing software.  &#8220;<em><a href="http://en.wikipedia.org/wiki/Project_triangle">Fast, cheap, good &#8211; pick any two</a></em>&#8221; still applies, but fast is faster, cheap is <em>a lot</em> cheaper, and good encompasses much more today than ever before.  Software development still <a href="http://computer.howstuffworks.com/wirths-law.htm">lags</a> <a href="http://en.wikipedia.org/wiki/Software_bloat">behind</a>.</p>
<p>The unwise developer makes all design decisions up front, for fear of getting the solution wrong.  The enlightened developer creates the closest thing to a working solution now, for fear of getting the solution wrong.  The former produces a solution that fits his view of the problem.  The later continually adapts his solution to encompass others&#8217; view of the problem.  Which is more valuable?  The unwise developer wants to be done, and will sacrifice alienating some users.  The enlightened developer wants to be correct, and will compromise stability of the design.  Why do this? Because inactivity leads to <a href="http://en.wikipedia.org/wiki/Software_rot">software rot</a>, and we have techniques for <a href="http://en.wikipedia.org/wiki/Test-driven_development">dealing</a> <a href="http://en.wikipedia.org/wiki/Continuous_integration">with</a> <a href="http://www.pragprog.com/titles/auto/pragmatic-project-automation">changing designs</a>.  What good are our <a href="http://blog.thinkrelevance.com/2007/5/17/design-patterns-are-code-smells">big up-front design skills</a> when the requirements change?</p>
<p>Like Darwin encouraged us to do with our views of biology, we&#8217;ve ditched an up-front design model for an evolutionary one.  There is increasingly a focus on software as an evolutionary process everywhere, and it&#8217;s phrased in many ways: <em><a href="http://en.wikipedia.org/wiki/Continuous_production">continuous production</a></em> (Cal Henderson&#8217;s <a href="http://www.webstock.org.nz/talks/speakers/cal-henderson/building-big-on-the-web/">explanation</a> the best); the <a href="http://en.wikipedia.org/wiki/Perpetual_beta"><em>perpetual beta</em></a>; &#8220;<em>no such thing as done</em>&#8220;, <em><a href="http://agilemanifesto.org/">agility</a> &#8211; openness and responsiveness to change</em>.  The risk of bloated software has lead us down a path to focus on and seek to create small, modular applications that create &#8220;business&#8221; value immediately, <a href="http://en.wikipedia.org/wiki/Unix_philosophy">can be chained together but never grow overly complex</a>.  Our design decisions still exist, but they are on a much smaller scale, and with much <a href="http://www.amazon.com/Refactoring-Patterns-Addison-Wesley-Signature-Kerievsky/dp/0321213351/ref=sr_1_1?ie=UTF8&amp;qid=1248913490&amp;sr=8-1">more concrete drivers</a> and concerns factored in.  And we understand that we&#8217;re fundamentally in error when we make them out-of-context.</p>
<p>Others have thoroughly dealt with this topic in much greater detail than I can or care to.  Neal Ford has written about what <a href="http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=evolutionary+architecture+emergent+design:">Evolutionary Architecture and Emergent Design</a> look like.  Martin Fowler has asked, &#8220;<a href="http://martinfowler.com/articles/designDead.html"><em>Is Design Dead?</em></a>&#8221; and answered his own question.  I would encourage you to read their thoughts on the matter, as my own conclusions are largely in line with theirs.</p>
<p>That being said, there are some tools that you should look to add to your collection as you go.  Any craftsman must learn to master his or her tools.  Just having the tool in your toolbox does not necessarily make you a good designer; because they must be used properly, in the proper context.  Like Clint Eastwood&#8217;s character explains of his toolkit in <em>Gran Turino</em>: each tool has a job, its own context and realm of applicability.  Also, resist the urge to apply them every chance you get.  Much of good design is about <a title="External link to http://www.presentationzen.com/presentationzen/2007/03/can_limitations.html" href="http://www.presentationzen.com/presentationzen/2007/03/can_limitations.html" target="_blank">restraint</a>.  Try to see them applied correctly, or incorrectly, and talk with others about it.  Keep a conversation going; don&#8217;t allow your codebase to become stagnant.  Continually question, strike the right balance and good designs will emerge and bad designs will improve. Your methodology may have you delivering in sprints, but good design is a marathon.</p>
<p>Here are the basic tools.  There is a lot of material out there on these &#8211; easy to Google or find on Wikipedia.  I am not going to offer any links or speculation, because I think these things should continually be discussed.  You should be constantly evolving your own opinions and knowledge of them.  They must be used, discussed and understood in order to be mastered.</p>
<p>Overarching Computing Principles &#8211; Reduce Complexity</p>
<ul>
<li>KISS &#8211; Keep it Simple, Stupid.</li>
<li>DRY &#8211; Don&#8217;t Repeat Yourself.</li>
<li>YAGNI &#8211; You Ain&#8217;t Gonna Need It.</li>
<li>SOC &#8211; Separation of Concerns.</li>
</ul>
<p>Basic OO Principles</p>
<ul>
<li>Inheritence</li>
<li>Coupling/Cohesion (dependency)</li>
<li>Encapsulation</li>
<li>Modularity</li>
<li>Abstraction</li>
<li>Polymorphism</li>
</ul>
<p>SOLID (Advanced) OO Principles</p>
<ul>
<li>Single Responsibility Principle</li>
<li>Open/Closed Principle</li>
<li>Liskov Substitution Principle</li>
<li>Interface Segregation Principle</li>
<li>Dependency Inversion Principle</li>
</ul>
<p>Emergent Design Techniques</p>
<ul>
<li>Test Driven Development</li>
<li>Continuous Integration</li>
<li>Refactoring</li>
<li>Project Automation</li>
<li>Continuous Production</li>
</ul>
<p>To borrow a great closing quote from <a href="http://rubyhoedown2008.confreaks.com/05-bryan-liles-lightning-talk-tatft-test-all-the-f-in-time.html">Brian Liles</a>,</p>
<blockquote>
<p style="text-align: right;">Do not seek to follow in the footsteps of the wise.  Seek what they sought.<br />
–Matsuo Basho</p>
</blockquote>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=What+I%27d+Tell+Myself+About+Design+If+I+Were+Just+Beginning&amp;link=http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/&amp;notes=From%20all%20the%20time%20I%27ve%20spent%20learning%20design%2C%20there%20are%20a%20handful%20of%20things%20I%27d%20hope%20to%20remember%20or%20re-read%20if%20I%20were%20to%20ever%20get%20amnesia%20and%20have%20to%20start%20all%20over%20again.%C2%A0%20For%20new%20comers%20and%20experts%20alike%2C%20I%27d%20like%20to%20share%20a%20few%20ideas%20about%20design%20worth%20thinking%20about%20through%20musings%20and%20links%20to&amp;short_link=http://bit.ly/aVQIyj&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>July 24, 2009 -- <a href="http://cwash.org/2009/07/24/the-elements-of-reusable-code/" title="The Elements of Reusable Code">The Elements of Reusable Code</a> (0)</li><li>July 8, 2010 -- <a href="http://cwash.org/2010/07/08/transactions-part-1/" title="Transactions, Part 1">Transactions, Part 1</a> (0)</li><li>January 7, 2010 -- <a href="http://cwash.org/2010/01/07/eliminate-branching-if-statements-to-produce-better-code/" title="Eliminate Branching (IF Statements) to Produce Better Code">Eliminate Branching (IF Statements) to Produce Better Code</a> (0)</li><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>June 3, 2009 -- <a href="http://cwash.org/2009/06/03/what-is-hamcrest/" title="What is Hamcrest?">What is Hamcrest?</a> (0)</li><li>April 15, 2009 -- <a href="http://cwash.org/2009/04/15/osgi-ggity-giggity/" title="OSGi-ggity-Giggity">OSGi-ggity-Giggity</a> (4)</li><li>December 1, 2008 -- <a href="http://cwash.org/2008/12/01/24ways/" title="24ways">24ways</a> (1)</li><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>November 19, 2008 -- <a href="http://cwash.org/2008/11/19/java-6-and-maven-209-on-leopard/" title="Java 6 and Maven 2.0.9 on Leopard">Java 6 and Maven 2.0.9 on Leopard</a> (7)</li><li>August 2, 2008 -- <a href="http://cwash.org/2008/08/02/how-i-escape-the-reuse-trap/" title="How I Escape the &#8220;Reuse Trap&#8221;">How I Escape the &#8220;Reuse Trap&#8221;</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2009/07/29/what-id-tell-myself-about-design-if-i-were-just-beginning/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Must Haves/References For Modern Java EE Developers</title>
		<link>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=must-havesreferences-for-modern-java-ee-developers</link>
		<comments>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 01:10:54 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[javaee]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[references]]></category>
		<category><![CDATA[seam]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[testng]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=46</guid>
		<description><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/";</script>I&#8217;ve been doing a lot of reading lately and have been meaning to plug some of my favorite reads, and one of the things that I&#8217;ve been trying to read with an eye toward is for converting those that have been stuck on &#8220;behind-the-curve&#8221; projects to the new way of thinking and doing things. As [...]]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>I&#8217;ve been doing a lot of reading lately and have been meaning to plug some of my favorite reads, and one of the things that I&#8217;ve been trying to read with an eye toward is for converting those that have been stuck on &#8220;behind-the-curve&#8221; projects to the new way of thinking and doing things.  As such, and just in time for the weekend, I&#8217;ve compiled a list of my favorites with an eye to the &#8220;movers and shakers&#8221; that have driven innovation in the Enterprise Java world recently.  Note that even though some of these links are specific to certain frameworks/technologies, there is a common thread throughout most of these that have a bigger focus on the best way to solve problems using Java 5/EE 5 constructs and concepts.</p>
<p>A book that should be on any Java developer&#8217;s shelf is <a href="http://www.amazon.com/gp/product/0321356683?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321356683">Effective Java (2nd Edition)</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0321356683" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  <em>Make sure you get the second edition</em>, for all of the Java 5 changes.  <a href="http://www.youtube.com/watch?v=pi_I7oD_uGI">This talk by Joshua</a> should whet your appetite.  (His <a href="http://www.youtube.com/watch?v=aAb7hSCtvGw">talk on good API design</a> is also very good.)  You should also take a look at Bob Lee&#8217;s <a href="http://www.youtube.com/watch?v=FFXhXZnmEQM">talk on Guice</a>.  Guice&#8217;s philosophy and focus on typesafety has spilled over into Web Beans (and newer versions of Seam) and its annotation based approach has heavily influenced newer Spring features.  I especially like his points on type safety around the 11-minute mark.  The walkthrough at the end of the talk from &#8220;old way&#8221; to &#8220;new way&#8221; is great for people who haven&#8217;t really gotten away from Factories, Delegates, and Service Locators yet.</p>
<p>The Guice video mentions that a common thread in modern Java frameworks is a focus on testability. Testing is a very important concept that nearly all new frameworks have embraced, but you still need know-how to be successful with testing.  I&#8217;ve come across some great books recently in the automated (developer) testing arena.  I&#8217;ve found the most thorough book on the topic out there is Lasse Koskela&#8217;s <a href="http://www.amazon.com/gp/product/1932394850?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1932394850">Test Driven</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=1932394850" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  The ideas and topics discussed in the book are really language independent, and work equally well with other languages.  To cut your teeth on TestNG, which the Seam documentation turned me onto, I recommend the TestNG developers&#8217; book <a href="http://www.amazon.com/gp/product/0321503104?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0321503104">Next Generation Java Testing: TestNG and Advanced Concepts</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0321503104" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.  Cedric Beust, also the author of EJBGen, and Hani Suleiman, author of the Bile Blog, produced a book that was a suprisingly good read.  It&#8217;s packed with a lot of knowledge and some interesting takes on EE concepts.  Newer versions of JUnit also include many of these features and concepts, so you&#8217;ll get the underpinnings of these concepts in this book.  <a href="http://www.youtube.com/watch?v=TtcEpryRy44">This video</a> gives you a basis to TestNG&#8217;s approach.</p>
<p>As one of the growing number of developers who have an application in the <a href="http://seamframework.org/Documentation/SeamInProductionListing" target="_new">Seam In Production</a> page, there are a few Seam resources I have to share.  Even if you don&#8217;t get into Seam, it should be on your radar because a lot of the core concepts around conversations have evolved into Web Beans, and are found other frameworks like Apache Orchestra and Spring WebFlow.  Pete Muir did a <a href="https://jboss.webex.com/ec0600l/eventcenter/recording/recordAction.do;jsessionid=JwTdnQw2TZrh1Zq715zmXWwHBD2ZW2fDynhW2dh7NxYnK1pKkLly!-1137412519?theAction=poprecord&#038;actname=%2Feventcenter%2Fframe%2Fg.do&#038;apiname=lsr.php&#038;renewticket=0&#038;renewticket=0&#038;actappname=ec0600l&#038;entappname=url0106l&#038;needFilter=false&#038;&#038;isurlact=true&#038;entactname=%2FnbrRecordingURL.do&#038;rID=34057132&#038;rKey=F88E0DE2EA1FAC2D&#038;recordID=34057132&#038;rnd=9027886079&#038;siteurl=jboss&#038;SP=EC&#038;AT=pb&#038;format=short">Webcast</a> that&#8217;s a great introduction to Seam 2.  </p>
<p>Author of <a href="http://solutionsfit.com/blog/" target="_new">one of my favorite Seam blogs</a>, Jacob Orshalick, has created a <a href="http://refcardz.dzone.com/refcardz/core-seam?oid=hom6084">DZone RefCard for Seam 2.1 Core</a>.  It&#8217;s right off the presses, being published this week, but is a great quick-capsule review of what Seam can do for you, and nice to have on your desk if you&#8217;re writing Seam.  If you need more in-depth descriptions of what&#8217;s on the RefCard, Jacob also coauthored the latest edition of the great Seam reference <a href="http://www.amazon.com/gp/product/0137129394?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=0137129394">Seam Framework: Experience the Evolution of Java EE</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=0137129394" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />.<br />
Dan Allen&#8217;s <a href="http://www.amazon.com/gp/product/1933988401?ie=UTF8&#038;tag=cwasintosoft-20&#038;linkCode=as2&#038;camp=1789&#038;creative=9325&#038;creativeASIN=1933988401">Seam in Action</a><img src="http://www.assoc-amazon.com/e/ir?t=cwasintosoft-20&#038;l=as2&#038;o=1&#038;a=1933988401" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> is another excellent resource.  Of course, the awesome <a href="http://seamframework.org/Documentation">Seam Docs</a> and <a href="http://www.seamframework.org/Community/Forums">Forums</a> always come in handy.  You should also RSS <a href="http://in.relation.to/">in.relation.to</a> – the Hibernate/Seam developers&#8217; group blog.</p>
<p>I know I&#8217;m leaving some great things out.  What resources do you think someone who is used to J2EE should take a look at to get them &#8220;up to speed&#8221; with the state of the art?</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Must+Haves%2FReferences+For+Modern+Java+EE+Developers&amp;link=http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/&amp;notes=I%27ve%20been%20doing%20a%20lot%20of%20reading%20lately%20and%20have%20been%20meaning%20to%20plug%20some%20of%20my%20favorite%20reads%2C%20and%20one%20of%20the%20things%20that%20I%27ve%20been%20trying%20to%20read%20with%20an%20eye%20toward%20is%20for%20converting%20those%20that%20have%20been%20stuck%20on%20%22behind-the-curve%22%20projects%20to%20the%20new%20way%20of%20thinking%20and%20doing%20things.%20%20As%20such%2C%20a&amp;short_link=http://bit.ly/bpUdbq&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>January 31, 2009 -- <a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/" title="In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel ">In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel </a> (3)</li><li>March 19, 2008 -- <a href="http://cwash.org/2008/03/19/new-wave-logging/" title="New Wave Logging">New Wave Logging</a> (0)</li><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>April 15, 2009 -- <a href="http://cwash.org/2009/04/15/osgi-ggity-giggity/" title="OSGi-ggity-Giggity">OSGi-ggity-Giggity</a> (4)</li><li>February 17, 2009 -- <a href="http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/" title="Don&#8217;t Unit Test Anymore&#8230; No, Really!">Don&#8217;t Unit Test Anymore&#8230; No, Really!</a> (6)</li><li>January 13, 2009 -- <a href="http://cwash.org/2009/01/13/on-software-quality/" title="On Software Quality">On Software Quality</a> (8)</li><li>August 21, 2008 -- <a href="http://cwash.org/2008/08/21/weblogic-92-seam-victory-is-mine/" title="Weblogic 9.2 + Seam : Victory is Mine!">Weblogic 9.2 + Seam : Victory is Mine!</a> (1)</li><li>August 2, 2008 -- <a href="http://cwash.org/2008/08/02/how-i-escape-the-reuse-trap/" title="How I Escape the &#8220;Reuse Trap&#8221;">How I Escape the &#8220;Reuse Trap&#8221;</a> (0)</li><li>July 21, 2008 -- <a href="http://cwash.org/2008/07/21/pimp-my-build/" title="Pimp My Build">Pimp My Build</a> (0)</li><li>March 13, 2008 -- <a href="http://cwash.org/2008/03/13/continuous-integration-dissected/" title="Continuous Integration Dissected">Continuous Integration Dissected</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

