From: Patrick May Date: 2004-11-01T12:06:12+09:00 Subject: Re: "Business" objects? On Saturday, October 30, 2004, at 03:23 PM, James Britt wrote: > craig duncan wrote: >> Quoted from ... ruby/gems/1.8/doc/activerecord-1.0.0/rdoc/index.html: >> > Active Record � Object-relation mapping put on rails >> > >> > Active Record connects business objects and database tables . . . >> ^^^^^^ >> Why does it connect "business" objects? Does this mean it wouldn't be >> able to connect "non-commercial" or "NGO" objects? What about >> artistic objects? Would activerecord be completely useless for a >> database containing info on my personal CD collection? > > The word "business" is meant to distinguish those objects from the > code devoted to , say, infrastructure. In other words, they hold the > code that lets your application go about its specific business, be > that selling widgets, rendering nice pictures, emitting strange > sounds, or cataloging your personal CD collection. The business > objects typically sit on top of the framework or infrastructure > objects. >> Please enlighten me as to how something so technologically (not to >> mention ideologically) limiting worked its way into the fundamental >> design of this library. > > It's a common term used among many "professional software developers"; > i.e, people who write software for businesses. There are no doubt > other ways to name chunks of code so that you can define and maintain > a reasonably clean partition between the plumbing and dishwasher. It is an odd distinction. Why is the in-memory code object, transient and fleeting, the "Business Object", while the permanent record is relegated to the invisible role of "plumbing"? I prefer to call them BO objects, myself. Because I think they are a smell. There are points of interface that are important to the business. The place where customers buy things. The place where inventory is recorded. The interfaces used by non-programmers to monitor these things. All the stuff in between -- the BO domain -- to me, all that is just plumbing between the places where the business makes money. Like all other code smells, this one should be managed in a discrete fashion. Cheers, Patrick