Роли и читаемость кода
Улучшение использования ролей (Moo::Role или 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 ответ
Единственное, о чем я могу думать и что я делаю время от времени, - это тщательно документировать все с помощью 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;