<?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>PHP in Action &#187; Java</title>
	<atom:link href="http://blog.agilephp.com/category/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.agilephp.com</link>
	<description>Dagfinn Reiersøl on PHP, agile development, Ruby and other addictive substances</description>
	<lastBuildDate>Mon, 28 Sep 2009 14:35:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Sounds like an average PHP app to me</title>
		<link>http://blog.agilephp.com/2009/05/04/sounds-like-an-average-php-app-to-me/</link>
		<comments>http://blog.agilephp.com/2009/05/04/sounds-like-an-average-php-app-to-me/#comments</comments>
		<pubDate>Mon, 04 May 2009 18:59:18 +0000</pubDate>
		<dc:creator>dagfinn</dc:creator>
				<category><![CDATA[Application design]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://blog.agilephp.com/?p=1577</guid>
		<description><![CDATA[



Image via Wikipedia



Dean Wampler blogs: Is the Supremacy of Object-Oriented Programming Over?
&#8220;The fact is, for a lot of these applications, it’s just data. The ceremony of object wrappers doesn’t carry its weight. Just put the data in a hash map (or a list if you don’t need the bits “labeled”) and then process the collection [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignleft" style="width: 164px;">
<dt class="wp-caption-dt"><a href="http://commons.wikipedia.org/wiki/Image:Key_delete.jpg"><img title="Delete key on PC keyboard" src="http://upload.wikimedia.org/wikipedia/commons/2/2c/Key_delete.jpg" alt="Delete key on PC keyboard" width="154" height="164" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image via <a href="http://commons.wikipedia.org/wiki/Image:Key_delete.jpg">Wikipedia</a></dd>
</dl>
</div>
</div>
<p>Dean Wampler blogs: <a href="http://blog.objectmentor.com/articles/2009/04/20/is-the-supremacy-of-object-oriented-programming-over">Is the Supremacy of Object-Oriented Programming Over?</a></p>
<blockquote><p>&#8220;The fact is, for a lot of these applications, it’s just data. The ceremony of object wrappers doesn’t carry its weight. Just put the data in a hash map (or a list if you don’t need the bits “labeled”) and then process the collection with your iterate, map, and reduce functions. This may sound heretical, but how much Java code could you delete today if you replaced it with a stored procedure?&#8221;</p></blockquote>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=PHP%20in%20Action&amp;siteurl=http%3A%2F%2Fblog.agilephp.com%2F&amp;linkname=Sounds%20like%20an%20average%20PHP%20app%20to%20me&amp;linkurl=http%3A%2F%2Fblog.agilephp.com%2F2009%2F05%2F04%2Fsounds-like-an-average-php-app-to-me%2F"><img src="http://blog.agilephp.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://blog.agilephp.com/2009/05/04/sounds-like-an-average-php-app-to-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 ways to improve your code</title>
		<link>http://blog.agilephp.com/2009/04/21/10-ways-to-improve-your-code/</link>
		<comments>http://blog.agilephp.com/2009/04/21/10-ways-to-improve-your-code/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 13:55:44 +0000</pubDate>
		<dc:creator>dagfinn</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Neal Ford]]></category>

		<guid isPermaLink="false">http://blog.agilephp.com/?p=1554</guid>
		<description><![CDATA[



Image by Jared Richardson via Flickr



I discovered a video presentation available from QCon SF 2008 by Neal Ford called 10 Ways to Improve Your Code. Although the examples are in Java, most of the presentation is relevant to PHP. There are some ideas here that I&#8217;ve never heard of myself, such as &#8220;anti-objects&#8221;.
Some of the [...]]]></description>
			<content:encoded><![CDATA[<div class="zemanta-img" style="margin: 1em; display: block;">
<div>
<dl class="wp-caption alignright" style="width: 250px;">
<dt class="wp-caption-dt"><a href="http://www.flickr.com/photos/38701974@N00/3296805817"><img title="Neal's Drink of Choice" src="http://farm4.static.flickr.com/3408/3296805817_651ae870f2_m.jpg" alt="Neal's Drink of Choice" width="240" height="160" /></a></dt>
<dd class="wp-caption-dd zemanta-img-attribution" style="font-size: 0.8em;">Image by <a href="http://www.flickr.com/photos/38701974@N00/3296805817">Jared Richardson</a> via Flickr</dd>
</dl>
</div>
</div>
<p>I discovered a video presentation available from QCon SF 2008 by Neal Ford called <a href="http://www.infoq.com/presentations/10-Ways-to-Better-Code-Neal-Ford">10 Ways to Improve Your Code</a>. Although the examples are in Java, most of the presentation is relevant to PHP. There are some ideas here that I&#8217;ve never heard of myself, such as &#8220;anti-objects&#8221;.</p>
<p>Some of the main headings are a bit cryptic, so you may have to see the video itself to have them explained.</p>
<p>Here are the 10 ways:</p>
<ol>
<li>Composed method</li>
<li>TDD (test-driven development/design)</li>
<li>Static analysis</li>
<li>Good citizenship</li>
<li>YAGNI (you ain&#8217;t gonna need it)</li>
<li>Question authority</li>
<li>SLAP (single level of abstraction principle)</li>
<li>Polyglot programming</li>
<li>Every nuance (=learn every nuance of your programming language)</li>
<li>Anti-objects</li>
</ol>
<p>I recommend this presentation. It&#8217;s about the things that really matter if you want to be productive.</p>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/62d5831b-11bf-4961-b232-771ffbf9ca7e/"><img class="zemanta-pixie-img" style="border: medium none; float: right;" src="http://img.zemanta.com/reblog_a.png?x-id=62d5831b-11bf-4961-b232-771ffbf9ca7e" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=PHP%20in%20Action&amp;siteurl=http%3A%2F%2Fblog.agilephp.com%2F&amp;linkname=10%20ways%20to%20improve%20your%20code&amp;linkurl=http%3A%2F%2Fblog.agilephp.com%2F2009%2F04%2F21%2F10-ways-to-improve-your-code%2F"><img src="http://blog.agilephp.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://blog.agilephp.com/2009/04/21/10-ways-to-improve-your-code/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Refactoring is design</title>
		<link>http://blog.agilephp.com/2008/10/11/refactoring-is-design/</link>
		<comments>http://blog.agilephp.com/2008/10/11/refactoring-is-design/#comments</comments>
		<pubDate>Sat, 11 Oct 2008 23:41:24 +0000</pubDate>
		<dc:creator>dagfinn</dc:creator>
				<category><![CDATA[Application design]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Refactoring]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Smidig2008]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=1406</guid>
		<description><![CDATA[ Refactoring is by definition a design actitivity, since the definition of refactoring is &#8220;improving the design of existing code&#8221;. But is this generally and fully recognized? After attending my friendly local agile conference (Smidig2008&#8212;sorry, it&#8217;s in Norwegian), I&#8217;m getting more of a feel for how different people think about it. And I&#8217;m wondering whether [...]]]></description>
			<content:encoded><![CDATA[<p> Refactoring is by definition a design actitivity, since the definition of refactoring is &#8220;improving the design of existing code&#8221;. But is this generally and fully recognized? After attending my friendly local agile conference (<a href="http://smidig.no/smidig2008/">Smidig2008</a>&mdash;sorry, it&#8217;s in Norwegian), I&#8217;m getting more of a feel for how different people think about it. And I&#8217;m wondering whether the use of metaphors such as &#8220;cleaning&#8221; makes refactoring seem too much like unskilled labor.  After all, physical cleaning jobs are seen that way. </p>
<p> The analogy between cleaning and refactoring is useful for making the non-developers understand that refactoring is absolutely necessary. But beyond this pragmatic similarity, are the two really similar in deep and meaningful ways? I don&#8217;t think so. Refactoring is not unskilled labor. It&#8217;s a task that both requires and builds design skill and experience.  While anyone can see that a floor is dirty, identifying <a href="http://en.wikipedia.org/wiki/Code_smell">code smells</a> is non-obvious, tricky and demanding.  This is true even of the simplest code smell, duplicated code. Although spotting code duplication is sometimes easy, at other times, the duplication is too subtle to be easily identifable.  When you clean a floor, the goal is well-defined and easy to visualize. When refactoring, you may know what you&#8217;re aiming for at each small step, but just a few moves further ahead you may end up with a structure you hadn&#8217;t imagined. </p>
<p class="addtoany_share_save_container">
    <a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?sitename=PHP%20in%20Action&amp;siteurl=http%3A%2F%2Fblog.agilephp.com%2F&amp;linkname=Refactoring%20is%20design&amp;linkurl=http%3A%2F%2Fblog.agilephp.com%2F2008%2F10%2F11%2Frefactoring-is-design%2F"><img src="http://blog.agilephp.com/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share/Save/Bookmark"/></a>

	</p>]]></content:encoded>
			<wfw:commentRss>http://blog.agilephp.com/2008/10/11/refactoring-is-design/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
