[Dbix-class] Using Class::Std under-the-hood

Hartmaier Alexander Alexander.Hartmaier at t-systems.at
Thu Aug 11 10:17:10 CEST 2005


I don't know the perl internals so I can't vote for the one or the other.
Speed is always important but if we don't loose more than 5-10% the better
maintainability is more important for me.

-Alex


> -----Ursprüngliche Nachricht-----
> Von: dbix-class-bounces at lists.rawmode.org [mailto:dbix-class-
> bounces at lists.rawmode.org] Im Auftrag von Adam Jacob
> Gesendet: Donnerstag, 11. August 2005 09:56
> An: dbix-class at lists.rawmode.org
> Betreff: Re: [Dbix-class] Using Class::Std under-the-hood
> 
> I can't vouch for whether this belongs in the internals of
> DBIx::Class, but thanks for bringing it up!  Class::Std, and inside-
> out objects, look cool as hell. :)
> 
> Adam
> 
> On Aug 10, 2005, at 11:36 PM, Dan Kubb wrote:
> 
> > Via IRC some of us have been discussing converting DBIx::Class to
> > using Class::Std under-the-hood.  If you're not familiar with
> > Class::Std, you can find more about it here:
> >
> >   http://search.cpan.org/dist/Class-Std/
> >
> > About a week ago I sent a message to the list about
> > DBIx::Class::Field,
> > which will be rolled into DBIx::Class shortly.   I used Class::Std
> > for everything underneath, more as an experiment than anything, but
> > I'm
> > really happy with the results.   So much so that we're considering
> > switching from using blessed hash objects to inside-out objects, and
> > using Class::Std as a base.
> >
> > A few of the benefits to using Class::Std are:  (there's more, read
> > the docs)
> >
> >   - Relatively simple to switch.  I did it in about 10 to 15 minutes
> >     per perl module.  Granted, the code-base was relatively small, but
> >     it was fairly painless and only took a couple of hours overall.
> >
> >   - It had the nice side effect of cutting out about 15% of my code
> > too;
> >     since much of the standard boilerplate stuff is handled by
> > Class::Std.
> >
> >   - Strong encapsulation.  It is impossible to access the underlying
> >     data, except through a well defined interface which you control
> >     completely.
> >
> >   - Automatic accessor/mutator creation.  Can be controlled though to
> >     provide both, either, or no external access.
> >
> >   - Automatic constructor creation.
> >
> >   - Mark any method as protected/private to prevent access to specific
> >     methods from outside your inheritance tree.
> >
> >   - Handled multiple inheritance dispatching, similar in result to
> >     NEXT, but simpler.  Its easier to get things right.  Check out
> >     the CUMULATIVE tag to see more.
> >
> >   - A clean way to specify overload behavior for objects.  Much
> >     nicer than overload.pm.
> >
> >   - Simple ways to dump the underlying data structure should you
> >     need it for debugging.  One of the biggest complaints with
> >     inside-out objects is that the data is so hidden you can't see
> >     it when you're initially writing and debugging.  With Class::Std
> >     objects its easy -- you just do:
> >
> >        warn $self->_DUMP;
> >
> >     This will return a string representation of the internal state
> >     of the object.
> >
> >   - Written by Damian Conway ;)  He said the module had gotten a lot
> >     of interest as OS Con.  I presume this is partly because he
> > features
> >     it in two chapters of his new book, Perl Best Practices.
> >
> >   - A very perl6-like syntax.
> >
> > Anyway, its a pretty nice module and I recommend checking it out.
> > I could include more sample code, but the documentation is a better
> > than anything I could write at the moment ;)
> >
> > We're looking to get some feedback before making any decisions.  If
> > you've got anything pro or con to add, now's the time to speak up..
> >
> > --
> >
> > Thanks,
> >
> > Dan Kubb
> >
> > _______________________________________________
> > List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> > Wiki: http://dbix-class.shadowcatsystems.co.uk/
> > IRC: irc.perl.org#dbix-class
> > SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
> >
> >
> 
> 
> _______________________________________________
> List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
> Wiki: http://dbix-class.shadowcatsystems.co.uk/
> IRC: irc.perl.org#dbix-class
> SVN: http://dev.catalyst.perl.org/repos/bast/trunk/DBIx-Class/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 5544 bytes
Desc: not available
Url : http://lists.rawmode.org/pipermail/dbix-class/attachments/20050811/786de63e/smime-0001.bin


More information about the Dbix-class mailing list