Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re^10: Avoiding compound data in software and system design

by siracusa (Friar)
on Apr 28, 2010 at 14:12 UTC ( [id://837315]=note: print w/replies, xml ) Need Help??


in reply to Re^9: Avoiding compound data in software and system design
in thread Avoiding compound data in software and system design

And what you're doing in Rose::DB, by breaking the encapsulation of DSNs is exactly analogous to that. It is unnecessary, pointless and creates work for the application programmer. Your users. The OP for instance!

I'm not breaking any encapsulation. These separate pieces of information (host, port, database name, etc.) are necessarily in the domain of the person writing the code to work with a database. It's not like these are some internal details that the DBI user doesn't need to know or concern himself with. Then the DBI user has to take these discrete pieces of information and serialize them into an obscurely formatted string, with a different format for each database. Again, the DBI user has to do this himself! DBI is not doing it for him. There is no "encapsulation" service being provided here. Only then will DBI accept this information, which it will then pass through to the DBD, which then has to deserialize it. It's completely pointless.

And again, the "pass through with no knowledge of its contents" bit that you keep going back to is completely orthogonal to the form of the data. It could just as easily be done with any other, more sensible, non-serialized data structure.

It's much easier for the user if he can deal with these pieces of information as is most natural, i.e., as separate entities, without ever having to deal with this nasty aspect of the DBI API that requires them to be serialized. What the original poster is complaining about is the exact opposite of what you claim: DBI's pointless and variable serialization of the DSN, not other module's attempts to help deal with it.

I know you think you know better, but 5 years or 10 from now, the penny will drop and you'll get it. Till then, we'd best just agree to differ, because you obviously aren't getting it now.

Right back at you.

  • Comment on Re^10: Avoiding compound data in software and system design

Replies are listed 'Best First'.
Re^11: Avoiding compound data in software and system design
by BrowserUk (Patriarch) on Apr 29, 2010 at 11:29 UTC

    In case you missed it, please see Re^5: Avoiding compound data in software and system design. The salient passage is:

    To achieve all that, you'd need more than just a hash. You'd need one flag per field to decide whether the key name should be prepended to the fields value. You'd need another value to ensure ordering. You'd need yet another flag to ensure that (for example) backslashes in pathnames got escaped for interpolation.

    Though the context of the post makes that clearer.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://837315]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-04-26 09:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found