I have to laugh.  Tom, I agree completely with what you're saying.  But
isn't it funny how abstractions become concretized and then we find
ourselves wanting to abstract them again.

DAO = Data Access Object (NOT Database Access Object).  The *whole* point of
a DAO, and I've read it on this list a million times, is to abstract data
access so that if your database changes you just change the DAO, not the
rest of the app.  So Ray's decided that he wants to use a different
"database" (i.e. for genres it will be a hybrid of the filesystem and a SQL
back end), and our immediate thought (yes, mine too) is "you can't do that
in a DAO!".  Well, it's data, and Ray wants to access it.  What kind of
object would that be?  Maybe nobody else finds this funny.

As I say, I'm not disagreeing - this idea that DAO = SQL database wrapper is
so entrenched that it would be asking for trouble to buck the trend.  It is
a nice example, though, of how abstractions evaporate over time.  Or maybe
it's the leaks - the underlying detail of a leaky abstraction eventually
leaks into the abstraction and sinks it.

To wax even more philosophical, I think this is why, wearisome as it is,
language design is so important.  If you ever had a language where you
didn't have to short-change your object model to get around language
limitations, abstractions wouldn't leak so much, they'd float for much
longer, and we would just use them without thinking.  In this light, the
idea that "ORM is computer science's Vietnam war" doesn't sound so
melodramatic.

Jaime

 -----Original Message-----
From: [email protected] [mailto:[EMAIL PROTECTED] Behalf Of
Tom McNeer
Sent: Friday, 11 January 2008 6:49 AM
To: [email protected]
Subject: [CFCDEV] Re: Placement of non-db related code and MVC


  Well, the model is the business - RioGrande. And part of the business
involves uploading those files. So there's certainly nothing wrong with
doing it in the model -- that's where it should be done.

  But not in your genre DAO. Something else -- like a GenreService or a
smart Genre object, depending on your architectural preference, should
handle both saving the database information (through your DAO) and writing
the file.



  --
  Thanks,

  Tom

  Tom McNeer
  MediumCool
  http://www.mediumcool.com
  1735 Johnson Road NE
  Atlanta, GA 30306
  404.589.0560
  

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CFCDev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cfcdev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to