in reply to Re^6: Avoiding compound data in software and system design
in thread Avoiding compound data in software and system design
This example of DSNs is a microcosm of what Rose::DB does on behalf of Rose::DB::Object, namely isolating it from (or providing a uniform set of introspection methods to determine) the differences between the databases.
I'm sorry that you think you are performing a useful service. You've forgotten the point of encapsulation. By breaking that encapsultion of the dsns, you are just complicating the life of your users. And "introspection" without good purpose, is no good reason.
When the postman delivers me a letter, he hands me the envelope. He doesn't read the contents to me, whilst handing juicy details of the sender and contents to my neighbours.
Yes. DBD breaks out parts of the dsn, but that's its job! But it only looks at those parts it needs to find the right DBD::* module. It hands the rest over to that particular DBD::* module untouched. Because only that module knows what to do with them.
Another analogy. Take a close look at TCP/IP packets. The application passes a data block. That gets wqrapped in UDP or TCP headers and gets passed to the IP layer where IP headers get added. And that gets passed to the link layer where frame headers get added. To each of these layers, the packet from the layer above is just an opaque lump. And that's exactly how it should be.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^8: Avoiding compound data in software and system design
by siracusa (Friar) on Apr 28, 2010 at 12:41 UTC | |
by BrowserUk (Patriarch) on Apr 28, 2010 at 13:30 UTC | |
by siracusa (Friar) on Apr 28, 2010 at 14:12 UTC | |
by BrowserUk (Patriarch) on Apr 29, 2010 at 11:29 UTC |