<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-1973750947775262558.post7235714205167406563..comments</id><updated>2012-01-23T20:43:41.869-05:00</updated><category term='coldfusion'/><category term='BOF'/><category term='server configuration'/><category term='debugging'/><category term='jenkins'/><category term='SQL Server'/><category term='jira'/><category term='CFUnited'/><category term='Windows'/><category term='Security'/><category term='twicf'/><category term='timesavers'/><category term='MongoDB'/><category term='MAX'/><category term='user group'/><category term='TDD'/><category term='bcrypt'/><category term='BDD'/><category term='start'/><category term='CFUG'/><category term='RIAUnleashed'/><category term='ORM'/><category term='eclipse plugin'/><category term='Under  the Hood'/><category term='MXUnit Videos'/><category term='shortcuts'/><category term='Code Dojo'/><category term='OO Design'/><category term='cfeclipse dictionaries'/><category term='Hudson'/><category term='Humor'/><category term='eclipse'/><category term='Documentation'/><category term='closures'/><category term='announcements'/><category term='facebook'/><category term='launchy'/><category term='mxunit product update'/><category term='Continuous Integration'/><category term='cfml'/><category term='scala'/><category term='ant'/><category term='air'/><category term='java'/><category term='refactoring'/><category term='mylyn'/><category term='mxunit eclipse plugin'/><category term='webservices'/><category term='energy saving tips'/><category term='unit testing testing private methods'/><category term='Presentations'/><category term='Best Practices'/><category term='flex'/><category term='test automation'/><category term='LiveCycle'/><category term='android'/><category term='Learning'/><category term='cfant'/><category term='noise control'/><category term='mobile development'/><category term='drivers'/><category term='flash builder'/><category term='generics'/><category term='twitter'/><category term='cfeclipse'/><category term='testability'/><category term='coldfusion builder'/><category term='unit testing'/><category term='ria'/><category term='fun'/><category term='cfObjective'/><category term='blogging'/><category term='svfug'/><category term='conferences'/><category term='subversion'/><title type='text'>Comments on MXUnit Blog: One Said Getter</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.mxunit.org/feeds/7235714205167406563/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html'/><author><name>bill shelton</name><uri>http://www.blogger.com/profile/06624894387927690246</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_R-2JPB8crqk/TIdxkrbeOnI/AAAAAAAAAZw/hHv2ocuuyqA/S220/avatar-twitter-white-bg.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-8762511987252430516</id><published>2012-01-23T20:43:41.869-05:00</published><updated>2012-01-23T20:43:41.869-05:00</updated><title type='text'>Rich business object vs service object.  I have be...</title><content type='html'>Rich business object vs service object.  I have been wrestling with how much delegation should be assigned to each.  It&amp;#39;s hard to find the balance.  &lt;br /&gt;&lt;br /&gt;Right now, on one of my projects, I have a business object that has a reference to my DAO.  My BO gets the initial query result, and does all kinds of checking and then logs the data into a database table.&lt;br /&gt;&lt;br /&gt;From the client page, the implementation looks like this&lt;br /&gt; &lt;br /&gt;myBO=new BO();&lt;br /&gt;myBO.setData(data);&lt;br /&gt;myBO.processImage();&lt;br /&gt;myBO.hasErrors();&lt;br /&gt;myBO.getErrors();&lt;br /&gt;myBO.getImageCount();&lt;br /&gt;&lt;br /&gt;&amp;#39;processImage&amp;#39; has data validation and invoke DAO method to log the data.&lt;br /&gt;&lt;br /&gt;Having a rich business object/bean in this situation feels &amp;#39;cleaner&amp;#39; and encapsulated, rather than exposing the validation logic on the client page and then once validated, passing data in the service object, which then calls the DAO to log the data.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/8762511987252430516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/8762511987252430516'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1327369421869#c8762511987252430516' title=''/><author><name>Nick Han</name><uri>http://www.blogger.com/profile/14307699025861095140</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-527000032'/></entry><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-2836242783012593356</id><published>2008-12-22T11:34:00.000-05:00</published><updated>2008-12-22T11:34:00.000-05:00</updated><title type='text'>i just reread your comment, bill. and i would like...</title><content type='html'>i just reread your comment, bill. and i would like to submit it to the blogosphere for Comment of the Year award.&lt;BR/&gt;&lt;BR/&gt;well done, sir.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/2836242783012593356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/2836242783012593356'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1229963640000#c2836242783012593356' title=''/><author><name>Marc Esher</name><uri>http://www.blogger.com/profile/05942611191966201181</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-260340863'/></entry><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-6739328630064598363</id><published>2008-10-16T16:45:00.000-04:00</published><updated>2008-10-16T16:45:00.000-04:00</updated><title type='text'>Good stuff, Marc,&lt;br&gt;&lt;br&gt;I have one major correcti...</title><content type='html'>Good stuff, Marc,&lt;BR/&gt;&lt;BR/&gt;I have one major correction: With respect to Wal-mart greetings, shouldn't it be "… is that a return OR EXCHANGE ..."? &lt;BR/&gt;&lt;BR/&gt;The Wal-Mart merchandise exchange/return analogy is actually one of the themes I hear in your well thought-out post. In other words, when we maintain our code (evolve it) we exchange certain parts of it - effectively swapping out implementations. In some cases, we look at the effort associated with evolving something and simply opt for a total "return" - or re-engineering the app from the ground up - "Do you have a receipt"? One thing never changes; and that is nothing stays the same.  So, today I cast my vote for adaptability and agility in design. In order to do this, I think our software needs to be testable and testability naturally seems to lead to smaller components, but more of them. It's kind of like dealing with Legos vs. cinder blocks. And I don't think we have any metrics for how much it costs to re-engineer a large procedural legacy system vs. re-engineering a well-designed OO system, but, I would much rather be brought on a project that has a bunch of Legos with tests than a couple big-ass cinder blocks. &lt;BR/&gt;&lt;BR/&gt;When it comes to instance data (set/get), which make up an object's state, accessor methods were suggested in order to control the effective state transition of an object. I think when dealing with certain kinds of data or needs we might need this kind of control, in other kinds of data it's not as important. I also sense the potential thread-safety issues when dealing with instance data ... that is, anything shared and not synchronized, whatever that might be. &lt;BR/&gt;&lt;BR/&gt;I think we all want some simple rules we can follow: "Always use accessor methods and private instance data", or "do this" or "don't do that". It is a pain to wear depends, but we do need to catch that stuff that eeks out of our technical dogmas, deal with it, and admit that we need a changing. So, it depends … &lt;BR/&gt;&lt;BR/&gt;bill</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/6739328630064598363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/6739328630064598363'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1224189900000#c6739328630064598363' title=''/><author><name>billy</name><uri>http://www.blogger.com/profile/06624894387927690246</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='17359140296736057249'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1094271333'/></entry><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-3309402298727898871</id><published>2008-10-16T13:17:00.000-04:00</published><updated>2008-10-16T13:17:00.000-04:00</updated><title type='text'>Awesome post! I only read PART I (need to get some...</title><content type='html'>Awesome post! I only read PART I (need to get some work done), but am loving it so far. Will return tonight to finish this up. Really good stuff, can't wait to finish.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/3309402298727898871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/3309402298727898871'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1224177420000#c3309402298727898871' title=''/><author><name>Ben Nadel</name><uri>http://www.blogger.com/profile/14054723593701580342</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-572024312'/></entry><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-4803543200526065988</id><published>2008-10-16T11:09:00.000-04:00</published><updated>2008-10-16T11:09:00.000-04:00</updated><title type='text'>This is an awesome post and one I think I'll be re...</title><content type='html'>This is an awesome post and one I think I'll be reading again. Thanks for taking the time to write it! You've raised some really good points here and made an excellent job of showing that their is not just "one true way".</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/4803543200526065988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/4803543200526065988'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1224169740000#c4803543200526065988' title=''/><author><name>John Whish</name><uri>http://www.aliaspooryorik.com/blog/</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img1.blogblog.com/img/blank.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1084462985'/></entry><entry><id>tag:blogger.com,1999:blog-1973750947775262558.post-3554406033797084440</id><published>2008-10-16T08:45:00.000-04:00</published><updated>2008-10-16T08:45:00.000-04:00</updated><title type='text'>Holy Crap dude, that was beautiful. I should just ...</title><content type='html'>Holy Crap dude, that was beautiful. I should just rant in private to you so you can write stuff like this all the time. After reading some of the other crap circulating I was starting to regret gettting it going, folks linger too much on the part I was being an ass about and not focusing on the other part (my fault). You did a great job Marc. If you use This scope I would hope ctrl space learn would work too but nothing big there. Also I want to point out that while I used YAGNI to defend THIS scope I was mostly going through all that to get to my punch line of just using structures :)</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/3554406033797084440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1973750947775262558/7235714205167406563/comments/default/3554406033797084440'/><link rel='alternate' type='text/html' href='http://blog.mxunit.org/2008/10/one-said-getter.html?showComment=1224161100000#c3554406033797084440' title=''/><author><name>Adam Haskell</name><uri>http://www.blogger.com/profile/14099670641814729297</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.mxunit.org/2008/10/one-said-getter.html' ref='tag:blogger.com,1999:blog-1973750947775262558.post-7235714205167406563' source='http://www.blogger.com/feeds/1973750947775262558/posts/default/7235714205167406563' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1286652981'/></entry></feed>
