[Bioperl-l] Moose and Roles
Chris Fields
cjfields at illinois.edu
Tue May 26 23:40:20 UTC 2009
On May 26, 2009, at 4:35 PM, Mark A. Jensen wrote:
>
> ----- Original Message ----- From: "Chris Mungall" <cjm at berkeleybop.org
> >
> To: "Mark A. Jensen" <maj at fortinbras.us>
> Cc: "Chris Fields" <cjfields at illinois.edu>; "BioPerl List" <bioperl-l at lists.open-bio.org
> >
> Sent: Tuesday, May 26, 2009 4:26 PM
> Subject: Re: [Bioperl-l] Moose and Roles
>
>
>> This seems to be overloading the namespacing mechanism. Presumably
>> each $X in {Root,Seq,Phylo,...} etc will need their own roles.
>> Would these go in Bio::Role::$X:: or Bio::$X::Role::?
> Right-- Roles could (should?) be applied across objects in higher
> level domains
> (e.g., I can imagine roles that both Hit::GenericHit and
> HSP::GenericHSP could
> take on), so I would push the Bio::Role::[Path] direction.
I think Bio::Role::X as well; this seems to be the general pattern
most devs using Moose are following. Roles tend to flatten the
inheritance tree anyway; see Ovid's articles on Roles at use.perl.org
for examples of this.
Is this what you mean chris? Or do you think confining to a fixed
namespace is not flexible enough (and do you prefer one of the two
forms below)?
>> For the names I prefer either (a) the convention of using
>> adjectives or adjectival phrases to denote roles or (b) spelling
>> it out rather than using hungarian notation (e.g. DescribableRole
>> rather than Describable)
>>
> +1; would you accept predicates such as "DoesDescriptiveStats"?
That's an 'Ovidism'; not necessarily a bad thing, but it's a mouthful
for a simple role. Bio::Role::Describes, perhaps?
package Bio::Foo;
use Bio::Root::Moose; # sets Bio::Root::Root as base class
with 'Bio::Role::Describes';
This isn't too far from the perl 6 syntax for roles:
class Bio::Foo does Bio::Role::Describe {...}
chrus
More information about the Bioperl-l
mailing list