I'm the maintainer of the DataWarehouse::* modules. Let me know if you would like to use the DataWarehouse::ETL namespace.
On Tue, May 3, 2016 at 10:36 AM, Smylers <smyl...@stripey.com> wrote: > Robert Wohlfarth writes: > > > I am looking to release a collection of modules for converting data. > > The modules read data from a source, convert the data, then add it > > into an SQL database. > > > > The modules are named like this... > > * Data::ETL > > * Data::ETL::Extract > > * Data::ETL::Extract::Excel > > * Data::ETL::Extract::DelimitedText > > * Data::ETL::Extract::XML > > * Data::ETL::Load > > * Data::ETL::MSAccess > > > > In my mind, ETL means "Extract-Transform-Load". > > That wouldn't've occurred to me, but the Wikipedia page for ‘Extra, > transform, load’ is the top link when searching DuckDuckGo for “ETL”, so > it seems reasonable to use it in a module name if your target audience > is people already working in the field and familiar with its jargon. > > > Is "Data" an appropriate place? > > Yes ... and no. Data:: is appropriate for pretty much every module on > Cpan, in that an awful lot of code does stuff with data. That makes it a > suboptimal namespace, because it doesn't define what's specific about > this particular module. > > In particular, it didn't to me suggest databases, or even data > warehousing (which the ETL Wikipedia page suggests is the main use of > ETL). It'd be good for the name to indicate that field in some way. > > > Thoughts on the naming convention "Data::ETL"? > > The combination of a very broad namespace and an acronym makes it hard > to guess at the area of the module — for instance that would be an > equally good name for a module that processes data searching for > extra-terrestrial life ... > > If the database-loading part uses DBI connections then the DBIx:: > namespace would be good for indicating that. > > Unfortunately for you, DataWarehouse::ETL is already used by another > module. Ideally you'd mention that module in your docs, explaining to > new users the difference between them. If your name can help to indicate > the distinctive feature of yours, so much the better — but often that > isn't possible if they are simply different approaches to the same > problem. > > One possibility for a suite of connected modules that only really work > together is to concoct a ‘fanciful’ brand name for the framework, like > Moose or Catalyst and put all your modules under either $Brand:: or > something like DataWarehouse::$Brand::. > > A framework name works well if, say, your $whatever::Extract::Excel > module is only intended to be used with other modules in your framework > and doesn't really make sense as a standalone module for somebody just > wanting to extract data from an Excel spreadsheet (and get back a Perl > data structure they can do what they want with). The brand name > indicates that it's part of the framework and to be used with that. > > Hope that helps. > > Smylers > -- > http://twitter.com/Smylers2 > -- Nelson Ferraz