Help name my code! I am terrible at it.

I write a lot of apps that need a simple database. I tend to use SQLite, but I found I was implementing the same things over and over again. I finally started wrapping it up in a role that I can reuse, but now I'm stuck on a name. The role provides the following:

  • Database connect/disconnect
  • Automatic creation of db if it doesn't already exist
  • Transactions
  • Blocking locks (SQLite's locking kept biting me, so I worked around it using flock)

The name I picked out of the blue was DBIx::Cradle. It sort of makes sense, but I don't really like it. It is hardly an extension of DBI, so DBIx doesn't feel right, even though it does provide some general purpose database goodness. The Cradle part is supposed to mean it makes life easy and comfortable, but again, doesn't feel quite right.

Any suggestions? Any other similar modules I should look at?

PS: In case anyone remembers my earlier post about database abstraction, you might notice I'm backtracking a bit. These things happen. The comments pushed me away from that course of action, and this role has simplified things enough that I'm a lot happier now.


The problem with 'cradle' is that a cradle wraps the user, whereas it is the backend that is being 'sheathed', though I don't like that word in particular.

Something along the lines of
NAMEx::muffle though that has some negative connotations.

Often, the namespace 'simple' is used when dialing down the options of a more complex interface.

I can't help you with the more primary namespace designator as you give us the 'what' but not the why. If later you refactored the module to use Amazon Web Services or carrier pigeons, the module would presumably still do what it does. The primary namespace should reflect the problem domain, not the answer domain.

Leave a comment

About cbt

user-pic I like to write computer programs, for both fun and profit. I enjoy Perl the most, but plenty of other languages are good too.