[Dbix-class] Using Class::Std under-the-hood
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.
> -----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. :)
> 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...
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