<?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/"
	xmlns:series="http://organizeseries.com/"
		>
<channel>
	<title>Comments on: Five Tips To Make Good Object-Oriented Code Better</title>
	<atom:link href="http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=five-tips-to-make-good-object-oriented-code-better</link>
	<description>The personal blog of Brandon Savage. Contains entries of a personal and professional nature focusing on PHP, Apple, LAMP, MySQL and Washington, DC.</description>
	<lastBuildDate>Wed, 15 May 2013 14:54:51 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2-alpha</generator>
	<item>
		<title>By: Jon Wahl</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-2093</link>
		<dc:creator>Jon Wahl</dc:creator>
		<pubDate>Sun, 15 Nov 2009 17:56:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-2093</guid>
		<description><![CDATA[I am a PHP developer who is keenly interested in fine tuning my object oriented programming skills.  I write OO code (using the CodeIgniter framework), but I absolutely know that a lot of what I’m writing is not making use of the features of OO programming properly. I tend to write procedural code in my classes. I find object variables &quot;handy&quot; because they are global within the scope of the object.  I really want to advance my skill/knowledge, but most of the articles written about object oriented programming in php tend to focus on the basics: What is object oriented programming; what are objects, methods, etc..  Your article was one of the first that addressed something I’m looking for: I understand the basics of OO programming but I want to do better.  Do you know of any other online or book form resources that use php that addresses this?

Great article and great blog.]]></description>
		<content:encoded><![CDATA[<p>I am a PHP developer who is keenly interested in fine tuning my object oriented programming skills.  I write OO code (using the CodeIgniter framework), but I absolutely know that a lot of what I’m writing is not making use of the features of OO programming properly. I tend to write procedural code in my classes. I find object variables &#8220;handy&#8221; because they are global within the scope of the object.  I really want to advance my skill/knowledge, but most of the articles written about object oriented programming in php tend to focus on the basics: What is object oriented programming; what are objects, methods, etc..  Your article was one of the first that addressed something I’m looking for: I understand the basics of OO programming but I want to do better.  Do you know of any other online or book form resources that use php that addresses this?</p>
<p>Great article and great blog.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shfx</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1910</link>
		<dc:creator>shfx</dc:creator>
		<pubDate>Wed, 04 Nov 2009 13:31:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1910</guid>
		<description><![CDATA[Thanks for the post. Those things are not so obvious until somebody write them down ;).

As for Dependency Injection, there is some nice interface at http://components.symfony-project.org/ but i never used it.]]></description>
		<content:encoded><![CDATA[<p>Thanks for the post. Those things are not so obvious until somebody write them down ;).</p>
<p>As for Dependency Injection, there is some nice interface at <a href="http://components.symfony-project.org/" rel="nofollow">http://components.symfony-project.org/</a> but i never used it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: thinsoldier</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1819</link>
		<dc:creator>thinsoldier</dc:creator>
		<pubDate>Fri, 30 Oct 2009 21:30:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1819</guid>
		<description><![CDATA[For so long I&#039;ve only seen Dependency Injection mentioned in relation to Testing and (this sounds so bad) I&#039;m honesly YEARS away from unit testing anything. So, I&#039;ve just ignored DI. But now that you mention &quot;feature addition&quot; I suddenly realized that an old non-OO project of mine is full of &quot;dependency injection&quot; that I had to retrofit in order to add flexibility. I now see a ton of potential headaches in every piece of OO code I&#039;ve written this year. 

I&#039;m hoping to soon have similarly enlightening moments for Interfaces, composition, factories, and coupling.

Your #1 point hit the nail on the head.
I spent the last 3 days trying to decide whether or not to bring a Value Object class into the picture for my database classes. In the end I chose not to.

Could you give an example of what the Zend Validate code would be like if it was too tightly coupled to the rest of ZFW.]]></description>
		<content:encoded><![CDATA[<p>For so long I&#8217;ve only seen Dependency Injection mentioned in relation to Testing and (this sounds so bad) I&#8217;m honesly YEARS away from unit testing anything. So, I&#8217;ve just ignored DI. But now that you mention &#8220;feature addition&#8221; I suddenly realized that an old non-OO project of mine is full of &#8220;dependency injection&#8221; that I had to retrofit in order to add flexibility. I now see a ton of potential headaches in every piece of OO code I&#8217;ve written this year. </p>
<p>I&#8217;m hoping to soon have similarly enlightening moments for Interfaces, composition, factories, and coupling.</p>
<p>Your #1 point hit the nail on the head.<br />
I spent the last 3 days trying to decide whether or not to bring a Value Object class into the picture for my database classes. In the end I chose not to.</p>
<p>Could you give an example of what the Zend Validate code would be like if it was too tightly coupled to the rest of ZFW.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1790</link>
		<dc:creator>Mikael</dc:creator>
		<pubDate>Thu, 29 Oct 2009 07:55:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1790</guid>
		<description><![CDATA[Allright Brandon, so what you&#039;re saying is sometimes people do one thing right (one object / one job) but end up doing another one wrong (tight coupling). For some reason, I was confused. Thanks for clarifying that for me.]]></description>
		<content:encoded><![CDATA[<p>Allright Brandon, so what you&#8217;re saying is sometimes people do one thing right (one object / one job) but end up doing another one wrong (tight coupling). For some reason, I was confused. Thanks for clarifying that for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stephan Hochdoerfer</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1788</link>
		<dc:creator>Stephan Hochdoerfer</dc:creator>
		<pubDate>Thu, 29 Oct 2009 07:47:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1788</guid>
		<description><![CDATA[Mentioning DI and ZF in one blog post seems really odd to me.

@David:
Maybe this helps as a starting point: http://en.wikipedia.org/wiki/Dependency_injection]]></description>
		<content:encoded><![CDATA[<p>Mentioning DI and ZF in one blog post seems really odd to me.</p>
<p>@David:<br />
Maybe this helps as a starting point: <a href="http://en.wikipedia.org/wiki/Dependency_injection" rel="nofollow">http://en.wikipedia.org/wiki/Dependency_injection</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel Freudenberger</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1784</link>
		<dc:creator>Daniel Freudenberger</dc:creator>
		<pubDate>Wed, 28 Oct 2009 23:16:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1784</guid>
		<description><![CDATA[Thanks for your post. I&#039;d love to use DI in php but I didn&#039;t find an easy to use DI-Implementation. I&#039;m used to StructureMap in c# and I&#039;m really loving it! Do you have any suggestions?]]></description>
		<content:encoded><![CDATA[<p>Thanks for your post. I&#8217;d love to use DI in php but I didn&#8217;t find an easy to use DI-Implementation. I&#8217;m used to StructureMap in c# and I&#8217;m really loving it! Do you have any suggestions?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anis uddin ahmad</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1779</link>
		<dc:creator>Anis uddin ahmad</dc:creator>
		<pubDate>Wed, 28 Oct 2009 18:18:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1779</guid>
		<description><![CDATA[Thanks a lot for great tips!
Can u plz explain &#039;one object - one job&#039; concept? 
My view is : 
An object is to represent the state and perform one/some related actions of an &#039;Entity&#039;. And each method of this objest should perform exactly &#039;One job&#039;. 
Don&#039;t u think so?]]></description>
		<content:encoded><![CDATA[<p>Thanks a lot for great tips!<br />
Can u plz explain &#8216;one object &#8211; one job&#8217; concept?<br />
My view is :<br />
An object is to represent the state and perform one/some related actions of an &#8216;Entity&#8217;. And each method of this objest should perform exactly &#8216;One job&#8217;.<br />
Don&#8217;t u think so?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Clark</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1778</link>
		<dc:creator>David Clark</dc:creator>
		<pubDate>Wed, 28 Oct 2009 17:08:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1778</guid>
		<description><![CDATA[I  always learn so much from your posts -thanks so much.
I  do not know about dependency injection - do you have any links that do not require subscription?]]></description>
		<content:encoded><![CDATA[<p>I  always learn so much from your posts -thanks so much.<br />
I  do not know about dependency injection &#8211; do you have any links that do not require subscription?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sergey</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1777</link>
		<dc:creator>Sergey</dc:creator>
		<pubDate>Wed, 28 Oct 2009 17:00:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1777</guid>
		<description><![CDATA[&gt; Zend Framework offers a good example of classes that are more loosely coupled. You can generally make use of Zend components without using the entire Zend Framework;

Haha((( do you ever tryed this? i tried to use Zend OpenId component without Zend Framework... oh, there was much easy to write new library((]]></description>
		<content:encoded><![CDATA[<p>&gt; Zend Framework offers a good example of classes that are more loosely coupled. You can generally make use of Zend components without using the entire Zend Framework;</p>
<p>Haha((( do you ever tryed this? i tried to use Zend OpenId component without Zend Framework&#8230; oh, there was much easy to write new library((</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ivanjovanovic</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1776</link>
		<dc:creator>ivanjovanovic</dc:creator>
		<pubDate>Wed, 28 Oct 2009 16:46:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1776</guid>
		<description><![CDATA[Regarding the #5.

I see the properly designed application as pile of layers stacked one on other. Like the onion. When it comes to class design it must have only one function and to be just in one layer, not to be spread across them. Also, the connectivity among layers should be that you do not skip the layers. Information should flow through layers as Brandon is telling, without unnecessary couplings.

Cheers,
Ivan]]></description>
		<content:encoded><![CDATA[<p>Regarding the #5.</p>
<p>I see the properly designed application as pile of layers stacked one on other. Like the onion. When it comes to class design it must have only one function and to be just in one layer, not to be spread across them. Also, the connectivity among layers should be that you do not skip the layers. Information should flow through layers as Brandon is telling, without unnecessary couplings.</p>
<p>Cheers,<br />
Ivan</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1774</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Wed, 28 Oct 2009 14:10:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1774</guid>
		<description><![CDATA[Brandon,

Thanks for the write up I appreciated the read.

Daniel]]></description>
		<content:encoded><![CDATA[<p>Brandon,</p>
<p>Thanks for the write up I appreciated the read.</p>
<p>Daniel</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon Savage</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1773</link>
		<dc:creator>Brandon Savage</dc:creator>
		<pubDate>Wed, 28 Oct 2009 13:39:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1773</guid>
		<description><![CDATA[For example, a developer will create an object that establishes a database connection, and another object which requests that database connection rather than allowing it to be injected. Or, they&#039;ll create a request class (a class that holds the request data), but then have methods that send that data to the controller, rather than letting the controller request it. These are tight couplings that are unnecessary.]]></description>
		<content:encoded><![CDATA[<p>For example, a developer will create an object that establishes a database connection, and another object which requests that database connection rather than allowing it to be injected. Or, they&#8217;ll create a request class (a class that holds the request data), but then have methods that send that data to the controller, rather than letting the controller request it. These are tight couplings that are unnecessary.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mikael</title>
		<link>http://www.brandonsavage.net/five-tips-to-make-good-object-oriented-code-better/#comment-1772</link>
		<dc:creator>Mikael</dc:creator>
		<pubDate>Wed, 28 Oct 2009 13:34:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.brandonsavage.net/?p=945#comment-1772</guid>
		<description><![CDATA[Hi Brandon,
I&#039;m not sure I understand this

&quot;Often times when a developer gives each object only one responsibility, they tightly couple objects together.&quot;

Can you explain ?

Mikael]]></description>
		<content:encoded><![CDATA[<p>Hi Brandon,<br />
I&#8217;m not sure I understand this</p>
<p>&#8220;Often times when a developer gives each object only one responsibility, they tightly couple objects together.&#8221;</p>
<p>Can you explain ?</p>
<p>Mikael</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic (Feed is rejected)
Page Caching using disk: enhanced (User agent is rejected)
Object Caching 628/647 objects using apc
Content Delivery Network via Amazon Web Services: S3: brandonsavage-net-files.s3.amazonaws.com

 Served from: www.brandonsavage.net @ 2013-05-23 23:15:29 by W3 Total Cache -->