DBIx::Class::Schema::Critic and parameterized roles

I originally started DBIx::Class::Schema::Critic as a code sample for a job application, but I thought it was worth releasing and continued independent development. Inspired by Perl::Critic, it's a package for comparing relational database schemas against a collection of best practice policies using the DBIx::Class Object/Relational Mapper.

At mst's behest I converted it from the Moose object system to his more lightweight Moo. But now that I've accumulated a few policy modules I'd like to refactor their commonalities out into roles.

Trouble is that Moo doesn't have an equivalent to Moose's MooseX::Role::Parameterized, and I can definitely see use for that in creating a bunch of similar roles for each DBIx::Class object a policy applies to.

So what to do? Can/should I port parameterized roles to Moo, while avoiding the overhead of a meta-object protocol like Moose's Class::MOP (which Moo explicitly rejects)? Or just make a bunch of more-or-less identical roles that differ only in name and attribute content, accepting the repetition as the price of minimalism?

About me

I'm a developer currently working as a build automation engineer for an e-commerce services company. I've been working with Perl since 1994, and although I started focused on web applications I've gradually moved into toolsmithing and custom applications.

My PAUSE/CPAN ID is MJGARDNER, and I usually host my public development efforts on GitHub.

YAPC::NA Needs Your Help

We need your help to make YAPC::NA the best it can be. First, we are trying to compile a list of every company and organization that uses Perl. Second, if there is someone you'd like to hear give a talk about anything submit them to our Presenter's brainstorm list.

@dotCloud loves Catalyst apps: Up-and-running in 10-minutes (#Perl in the cloud, Part III)

Lots is happening in the Perl Web framework world these days. The three main frameworks are getting better at a faster-and-faster rate, great screencasts are starting to appear, and — finally — Perl is moving into the cloud, thanks to support from new Platform-as-a-Service vendors like dotCloud.

Now, I’ve been known to kvetch a bit about “Perl in the cloud” once or twice before. But this is not a kvetch. No, no, my friend: this is a “Forget the ode, show me the code” post.

Why is booking.com hiring so many developers?

By this time folks know that I've been working hard trying to recruit more people for booking.com. They didn't ask me to, but I do this because I find it fun and I like working with people. Also, if you read my expat blog, you know that I want to help people live and work in other countries. I'm very fortunate that this passion of mine fits very well with my current employer's desire to move people to Europe. Yes, I get paid a bonus for everyone I refer, but I also tell everyone that if they don't want to go through me, they can apply directly to our jobs portal. Extra money is nice, but I'll happily forego that if I can help you live your dream of being an expat.

By now, many of you have seen our advertisement on jobs.perl.org advertising that we're hiring 20+ Perl developers. Many people have speculated as to why. This is to put to rest some of rumors which seem to go around.

Something for Perl event organisers to take into consideration

Jacob Kaplan-Moss:

I’ve decided this is so important to me that I’ll no longer attend or speak at conferences that don’t adopt and publish a code of conduct. I’ll also be using whatever clout I’ve got to encourage conference organizers to adopt and publish anti-harassment policies. […] So why, given the issues [with codes of conduct that] I outlined above, do I take this so seriously?

He makes the point, but does not emphasise it enough in my opinion: the code of conduct is not there to communicate to attendants how or how not to behave (in which capacity it is superfluous with the well-behaved majority and ineffective with perpetrators): it is there to reassure members of minorities that they will be heard and their concerns are understood.

Mojocast #2 - More cloudy goodness

Mojocast #1 was a hit!

The first episode detailed how to install and get your first Mojolicious Lite app running, and the followup continues the process by explaining how to use multiple types of placeholders, http methods, and formats to give you more flexibility in your lite apps.

Mojocast #2: Placeholders, methods, and formats


Welcome to Perl Node Interface

You can download last version from sourceforge. If you are on Windows you need Strawberry Perl, just unzip it and click on pni.exe ... if you are on Linux launch the pniguitk script ( but you will need Tk installed ).


Every feedback is welcome !

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is run by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.