<?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/"
		>
<channel>
	<title>Comments on: Clean Code Talks &#8211; Global State and Singletons</title>
	<atom:link href="http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/feed/" rel="self" type="application/rss+xml" />
	<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/</link>
	<description>Testability Explorer</description>
	<lastBuildDate>Fri, 30 Jul 2010 03:59:03 -0400</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Toby&#8217;s Epril &#187; Blog Archive &#187; 싱글톤과 스프링</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-1428</link>
		<dc:creator>Toby&#8217;s Epril &#187; Blog Archive &#187; 싱글톤과 스프링</dc:creator>
		<pubDate>Wed, 22 Jul 2009 00:20:00 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-1428</guid>
		<description>[...] 전역상태의 문제점에 관해서는 그의 Clean Code Talk 시리즈의 하나인 Global State and Singleton을 보면 이해하는데 도움이 될 [...]</description>
		<content:encoded><![CDATA[<p>[...] 전역상태의 문제점에 관해서는 그의 Clean Code Talk 시리즈의 하나인 Global State and Singleton을 보면 이해하는데 도움이 될 [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mrclay.org &#187; Archive &#187; Miško Hevery Programming Talks</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-1284</link>
		<dc:creator>mrclay.org &#187; Archive &#187; Miško Hevery Programming Talks</dc:creator>
		<pubDate>Mon, 29 Jun 2009 18:35:07 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-1284</guid>
		<description>[...] Global State and Singletons [...]</description>
		<content:encoded><![CDATA[<p>[...] Global State and Singletons [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Žilvinas</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-512</link>
		<dc:creator>Žilvinas</dc:creator>
		<pubDate>Tue, 30 Dec 2008 15:22:12 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-512</guid>
		<description>I watched all of your online presentations and this particular presentation is a big &quot;aha&quot; moment for me.  I also enjoyed your talk about polymorphism, your notes about precondition checking, minimizing class responsibilities. Simply put. Thank you - you have relieved questions of my mind that were bothering me for years in search of code elegance. I&#039;m very eager to watch more of your talks.</description>
		<content:encoded><![CDATA[<p>I watched all of your online presentations and this particular presentation is a big &#8220;aha&#8221; moment for me.  I also enjoyed your talk about polymorphism, your notes about precondition checking, minimizing class responsibilities. Simply put. Thank you &#8211; you have relieved questions of my mind that were bothering me for years in search of code elegance. I&#8217;m very eager to watch more of your talks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nitin Verma</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-505</link>
		<dc:creator>Nitin Verma</dc:creator>
		<pubDate>Fri, 26 Dec 2008 13:23:03 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-505</guid>
		<description>Nice presentation Misko, I do all the parameter passing to make my code more testable as you said and I do agree with you on most but we make global to make life easy for most. Like Object never knows about its garbage collector, new Object(gc1); or new Object(gc2); ... 2ndly I am not sure why you said Singletons in java are at JVM level and we can not have multiple apps using different instances in a single JVM. Classes are loaded by class loaders and we can have different instances of the Class Object per class loader. </description>
		<content:encoded><![CDATA[<p>Nice presentation Misko, I do all the parameter passing to make my code more testable as you said and I do agree with you on most but we make global to make life easy for most. Like Object never knows about its garbage collector, new Object(gc1); or new Object(gc2); &#8230; 2ndly I am not sure why you said Singletons in java are at JVM level and we can not have multiple apps using different instances in a single JVM. Classes are loaded by class loaders and we can have different instances of the Class Object per class loader.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: misko</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-360</link>
		<dc:creator>misko</dc:creator>
		<pubDate>Sun, 23 Nov 2008 20:59:03 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-360</guid>
		<description>I am working on open-sourcing the review cards and they should be available soon.</description>
		<content:encoded><![CDATA[<p>I am working on open-sourcing the review cards and they should be available soon.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Johannes</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-359</link>
		<dc:creator>Johannes</dc:creator>
		<pubDate>Sun, 23 Nov 2008 02:15:50 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-359</guid>
		<description>Hello Misko,
are these code review cards, that you mentioned  at the end of your talk, somewhere online available?

Thanks
Johannes</description>
		<content:encoded><![CDATA[<p>Hello Misko,<br />
are these code review cards, that you mentioned  at the end of your talk, somewhere online available?</p>
<p>Thanks<br />
Johannes</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eddy Young</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-358</link>
		<dc:creator>Eddy Young</dc:creator>
		<pubDate>Sat, 22 Nov 2008 23:26:14 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-358</guid>
		<description>You are a breath of fresh air. I really enjoy all your presentation, especially this last one.

BTW do you read H S Lahman on comp.object? Much of what you advocate echoes what Lahman has been preaching for the past decades on comp.object.

You talk of separating object instantiation from object calls; Lahman says that relationship instantiation and collaboration are two diffeernt concerns.

Lahman also has an interesting view of client/service relationship. In his world (which I agree with), the client dictates what the service should do. However, most of the time, applications are designed so that clients respect their interface (maybe why SPI is so hard to grasp by some people). Therefore, dependencies between classes and packages, according to Lahman, derive from this &quot;flow of requirements&quot; from client to services. The biggest impact of viewing this way is that there is no such thing as application layers, but rather collaborating subsystems and levels of abstraction. For example, the merchant subsystem depends on the credit-card processing subsystem at the same level of abstraction. However, the credit-card processing subsystem depends on the credit-card network subsystem from a lower level of abstraction.

Again, thank you for a very nice presentation.

Eddy.</description>
		<content:encoded><![CDATA[<p>You are a breath of fresh air. I really enjoy all your presentation, especially this last one.</p>
<p>BTW do you read H S Lahman on comp.object? Much of what you advocate echoes what Lahman has been preaching for the past decades on comp.object.</p>
<p>You talk of separating object instantiation from object calls; Lahman says that relationship instantiation and collaboration are two diffeernt concerns.</p>
<p>Lahman also has an interesting view of client/service relationship. In his world (which I agree with), the client dictates what the service should do. However, most of the time, applications are designed so that clients respect their interface (maybe why SPI is so hard to grasp by some people). Therefore, dependencies between classes and packages, according to Lahman, derive from this &#8220;flow of requirements&#8221; from client to services. The biggest impact of viewing this way is that there is no such thing as application layers, but rather collaborating subsystems and levels of abstraction. For example, the merchant subsystem depends on the credit-card processing subsystem at the same level of abstraction. However, the credit-card processing subsystem depends on the credit-card network subsystem from a lower level of abstraction.</p>
<p>Again, thank you for a very nice presentation.</p>
<p>Eddy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sandro</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-357</link>
		<dc:creator>Sandro</dc:creator>
		<pubDate>Sat, 22 Nov 2008 19:57:34 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-357</guid>
		<description>Great presentation! Singletons are indeed one of the more evil entities to a test environment. With the help of Guice, injecting &quot;application&quot; singleton objects is very easy thanks to the Scopes.SINGLETON binding. So there should be no reason to stick to the old global state ways which tools like these available.

At the end of your presentation you mentioned some form of cue card that can be used in code reviews which have points to look for when evaluating code testability. I&#039;m very interesting in acquiring a copy. Do you have it in an electronic format?</description>
		<content:encoded><![CDATA[<p>Great presentation! Singletons are indeed one of the more evil entities to a test environment. With the help of Guice, injecting &#8220;application&#8221; singleton objects is very easy thanks to the Scopes.SINGLETON binding. So there should be no reason to stick to the old global state ways which tools like these available.</p>
<p>At the end of your presentation you mentioned some form of cue card that can be used in code reviews which have points to look for when evaluating code testability. I&#8217;m very interesting in acquiring a copy. Do you have it in an electronic format?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Herme Garcia</title>
		<link>http://misko.hevery.com/2008/11/21/clean-code-talks-global-state-and-singletons/comment-page-1/#comment-355</link>
		<dc:creator>Herme Garcia</dc:creator>
		<pubDate>Fri, 21 Nov 2008 22:00:05 +0000</pubDate>
		<guid isPermaLink="false">http://misko.hevery.com/?p=307#comment-355</guid>
		<description>Great and clear talks, Misko

Thanks a lot.</description>
		<content:encoded><![CDATA[<p>Great and clear talks, Misko</p>
<p>Thanks a lot.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
