Re: Mixing OO and DB

From: Bob Badour <bbadour_at_pei.sympatico.ca>
Date: Tue, 04 Mar 2008 21:44:02 -0400
Message-ID: <47cdfae6$0$4029$9a566e8b_at_news.aliant.net>


JOG wrote:

> On Mar 4, 11:03 pm, Robert Martin <uncle..._at_objectmentor.com> wrote:
> 

>>On 2008-03-04 00:25:43 -0600, topmind <topm..._at_technologist.com> said:
>>
>>
>>
>>
>>
>>
>>>Robert Martin wrote:
>>>
>>>>On 2008-03-03 06:59:57 -0600, "David Cressey" <cresse..._at_verizon.net> said
>>>
>>>:
>>
>>>>>"Bob Bad Odor" <bbad..._at_pei.sympatico.ca> wrote in message
>>>>>news:47cb2504$0$4034$9a566e8b_at_news.aliant.net..
>>
>>>>>>>>Not if they are explanatory. Employee.find("Bob") is a lot easier to
>>
>>>>>>>>understand than Select * from Employee_Table where Name = 'Bob';
>>
>>>>>>How exactly does Employee.find(string) inform the reader that the metho
>>>
>>>d
>>>
>>>>>>will return a single employee with a matching name? People understand
>>>>>>things better when they are informed.
>>
>>>>Well, if you think 'find' is not evocative enough, then you could call
>>>>the function find_single_employee_matching_name("bob");
>>
>>>Um, like what if there are zero Bob's or 200 Bob's in the actual
>>>system? Are you gonna arbitrarily pick one?
>>
>>Don't be silly. find("Bob") will either return the object for "Bob" or
>>it will return nothing. You would only use this method if you knew
>>that there could be no more than one "Bob".
>>
>>If there could be more than one "Bob", then you would use a function
>>like: find_all("Bob") which would return a list of all the matching
>>objects.
>>

[shameless self-promotion snipped]

> First Robert, let me say that I have read your blogs and enjoyed them
> - especially the discussion of singletons, which struck a chord, so
> kudos for that. Having said that, I think your dismissal of
> declarative approaches is reactionary to the people you are
> communicating with.  I personally believe you are the sort of person
> that /if you had opportunity or inclination/ would see the benefits
> offered by declarative techniques over navigational approaches.

You give the man far more credit than he is due. If he were that sort of person, he would not be a self-aggrandizing ignorant in the first place.

  The

> main benefit? Query neutrality.  When I see find("bob") I wince,
> because if one is promoting it, then one is stuck in a single
> conceptual view of the data, considering a single "entity type",
> identified by a single attribute. We can be a lot more flexible than
> that. But then, perhaps only the cdt people will recognize what i talk
> about the neutrality of a logical model.
Received on Wed Mar 05 2008 - 02:44:02 CET

Original text of this message