角色和代码可读性

时间:2017-07-12 16:39:39

标签: perl moose moo

使用角色的改进(Moo :: Role or Role :: Tiny或者其他)

with qw(
    Some::Role
    Some::Other::Role
);
...
some_roles_method();

只是从mixin类中明确导入函数

use Some::Role qw/some_roles_method/;
...
some_roles_method();

很多,包括更多的灵活性,更少的簿记(特别是如果有很多方法被导入),而不是覆盖现有的方法。

但是一个很大的缺点是,如果您正在阅读代码并遇到some_roles_method()的提及并且您想要阅读该功能,那么它并不是立即显而易见的。您可以告诉的是,它未在文件中定义。

有没有什么好的策略来处理?我是唯一一个困扰的人吗?

1 个答案:

答案 0 :(得分:0)

我能想到的唯一一件事就是用POD彻底记录所有内容。但当然这需要很多的纪律。

use Moo;
with 'Role::Reader', 'Role::Writer';

# ...

=head1 METHODS

=head2 frobnicate

Frobnicates the foo.

=cut

sub frobnicate { ... }

=head2 write_cheque

This method is documented in L<Role::Writer>.

=head2 write_autograph

This method is documented in L<Role::Writer>.

=head2 read_mind

This method is documented in L<Role::Reader>.

=head2 read_book

This method is documented in L<Role::Reader>.

=cut

1;