Re: The wisdom of the object mentors (Was: Searching OO Associations with RDBMS Persistence Models)

From: topmind <topmind_at_technologist.com>
Date: 16 Jun 2006 13:40:23 -0700
Message-ID: <1150490423.711653.322720_at_g10g2000cwb.googlegroups.com>


Robert Martin wrote:
> On 2006-06-01 12:56:01 +0200, frebe73_at_gmail.com said:
>
> > The big questing is: Why do you want to unplug the SQL DBMS?
>
> I don't. Just like I don't want to disconnect my engine from my car.
> However, I want the car designed such that the engine can be
> disconnected.
>
> I don't want to replace the DB, I just want it to be replaceable. This
> just makes for good modularity, and good testability. I do not want to
> sacrifice any of the power of the DB, I just want to place the code
> that uses that power in a place that the rest of the application is not
> directly aware of.

Indirection is NOT free.

Having "official" interfaces between everything in the app can make for bloated, verbose code that is time-consuming to maintain. I consider RDBMS to be a *paradigm* and a key tool, not merely "an external service". Object wrappers over the DB often just waste code on translating from one paradigm to another rather than add real value.

And like I described elsewhere, I feel that if one did a good cost/benefit analysis, wrapping heavily would cost more under typical circumstances. Languages tend to change more often than databases.

Thus how about this: I want to be able to swap out OOP if a new app fad comes along to replace OOP. Can you deliver such swappability? I didn't think so.

>
> --
> Robert C. Martin (Uncle Bob) | email: unclebob_at_objectmentor.com

-T- Received on Fri Jun 16 2006 - 22:40:23 CEST

Original text of this message