<?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>Beat Fluri&#039;s Blog &#187; cobertura</title>
	<atom:link href="http://fluri.computerscience.ch/tag/cobertura/feed/" rel="self" type="application/rss+xml" />
	<link>http://fluri.computerscience.ch</link>
	<description>Just for the sake of it...</description>
	<lastBuildDate>Sat, 10 Jul 2010 20:09:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Clean Code Developer</title>
		<link>http://fluri.computerscience.ch/2009/11/clean-code-developer-3/</link>
		<comments>http://fluri.computerscience.ch/2009/11/clean-code-developer-3/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 19:30:24 +0000</pubDate>
		<dc:creator>bfluri</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[best practices]]></category>
		<category><![CDATA[clean code]]></category>
		<category><![CDATA[cobertura]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[jmockit]]></category>
		<category><![CDATA[mockito]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[software craftmenship]]></category>

		<guid isPermaLink="false">http://fluri.computerscience.ch/?p=143</guid>
		<description><![CDATA[It&#8217;s time to replace the Clean Code Developer bracelet again. The next color, and grade respectively, is the yellow bracelet. Now, the principles become more interesting; The yellow bracelet principles are the foundation of clean object-oriented design. Although they are not that easy to fulfill every time, they should be followed as eagerly as possible. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-131" title="ccd_banner" src="http://fluri.computerscience.ch/wp-content/uploads/2009/09/ccd_banner.png" alt="ccd_banner" width="185" height="46" />It&#8217;s time to replace the <a href="http://www.clean-code-developer.de">Clean Code Developer</a> bracelet again. The next color, and grade respectively, is the <a href="http://www.clean-code-developer.de/wiki/CcdGelberGrad">yellow bracelet</a>. Now, the principles become more interesting; The yellow bracelet principles are the foundation of clean object-oriented design. Although they are not that easy to fulfill every time, they should be followed as eagerly as possible. The principles and practices are:</p>
<ol>
<li>Interface Segregation Principle: Clients should not be forced to depend upon interfaces that they do not use.</li>
<li>Dependency Inversion Principle: a) High level classes should not depend upon low level modules. Both should depend upon abstractions. b) Abstractions should not depend upon details. Details should depend upon abstractions.</li>
<li>Liskov Substitution Principle: a) subclasses have to fulfill the invariants of the superclass. Post-conditions of methods in the superclass have to be fulfilled by overriding methods in subclasses.</li>
<li>Principles of Least Astonishment: Avoid side-effects. Use, for instance, the command and query separation principle of Bertrand Meyer (<a href="http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1257362953&amp;sr=1-1">Object-Oriented Software Construction</a>).</li>
<li>Information Hiding Principle: Well, that&#8217;s not a principle, that&#8217;s an order <img src='http://fluri.computerscience.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Complex Refactorings: See the <a href="http://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1257361863&amp;sr=8-1">Refactoring book by Martin Fowler</a>, his <a href="http://www.refactoring.com">Refactoring Web site</a>, or the <a href="http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1257361990&amp;sr=1-1">Refactoring to Patterns book by Joshua Kerievsky</a>.</li>
<li>Automated Unit Tests</li>
<li>Mockups: For Java I recommend <a href="https://jmockit.dev.java.net/">JMockit</a> or <a href="http://mockito.org/">mockito</a>.</li>
<li>Code Coverage: I recommend <a href="http://cobertura.sourceforge.net/">Cobertura</a> (free) or <a href="http://www.atlassian.com/software/clover/">Clover</a> (commercial) which both integrate nicely into <a href="http://hudson.dev.java.net">Hudson</a>.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://fluri.computerscience.ch/2009/11/clean-code-developer-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
