John Siracusa wrote:
There are a few things that make this difficult.  The first is that any OO
"helper" module depends on the object base class and method maker.  The
second is that the object base class and method maker are very simple, and
hardly worth distributing separately.

If they are very simple, why not use an existing module?

What functionality do they add, why could it not be added to another
accessor module?  If it is because the others were too simple, could
they have been split to load extra functionality on demand?

You shouldn't answer these questions on this list btw.  But they should
help you decide whether to rip them out, or release them seperately.

> The third is that even the functional
helper classes are very simple, and usually only exist so that I have a
single point of access for some functionality within my suite.

I suggest that you release them under the namespace of your own for now.

However, over the next few years, you should actively try to move
portions over to more functional namespaces and incorporate the
functionality into other modules.  This is a particularly more serious
state of affairs for the database side of things; database libraries
have more traps and pitfalls than you may be aware of, and the bugs in
that space are usually the hardest to debug and have the worst impact!
You should definitely ask on the POOP-group list about which existing DB
library is most similar to your new approach.

When you add a single method to a prepackaged module, could it be that
the module could be enhanced with the feature?  Try sending a patch to
the author.

Is your assessment of whether it fits in with the module you are using
correct?  Check with the community, maybe they have an approach that
works in the way you want.

Are you replicating the API of another module, with a competing
implementation?  That module should be released as Foo::Lite (if it is
actually `Lite'r) or otherwise under the namespace of the original
module.

Once the great ideas and fresh approaches that you have discovered with
your efforts are incorporated into other modules, or had new modules
made from the ones that really are new and different, the originals can
be deprecated and "laid to rest".
--
Sam Vilain, sam /\T vilain |><>T net, PGP key ID: 0x05B52F13
(include my PGP key ID in personal replies to avoid spam filtering)

Reply via email to