4

我编写了一个foo.pm从 Web 服务收集一些数据的类。在里面foo.pm我添加了 perldoc 来描述功能以及使用的简短指南。它的所有方法都有一个参考。

我还编写了一个子类cachedFoo.pm,它foo.pm用作基类,将自己的构造函数包装在foo'new方法周围,并foo使用数据库连接进行升级以缓存结果。我已经cachedFoo.pm为其他内容添加了 perldoc。

现在我只希望我的同事使用cachedFoo.pm. foo.pm我应该从to复制所有继承方法的 perldoc,cachedFoo.pm还是应该说“查看访问器的基类文档”?或者还有其他方法吗?

4

3 回答 3

3

不要复制文档,它会不同步,只需提供原始文档的链接并记录差异。

于 2012-07-18T13:27:52.527 回答
3

在接口描述的开头附近显眼地指向其他类就足够了,请参阅下面的最佳实践文档示例。然后,您的 pod 覆盖测试应该使用Pod::Coverage::CountParents来考虑继承。

package cachedFoo;
⋮
=head1 INTERFACE

=head2 Composition

    cachedFoo
        ISA foo
        DOES somerole

All methods and attributes not mentioned here are
inherited from L<foo> or mixed in from L<somerole>.

=head2 Methods

=head3 C<cache_database_thing>

Blah blah blah, Mr. Freeman

显式命名每个组合方法不会扩展。我不能推荐这个:

=head3 C<quux>

See L<foo/quux>.
于 2012-07-18T15:17:38.450 回答
2

您应该考虑重命名模块。我认为 Foo::Cached 将是常见的做法。我通常只在相关部分指出继承,例如:

=head1 METHODS

L<Foo::Cached> inherits all methods from L<Foo> and implements the following methods by itself:

...

如果您仍然想查看所有继承的方法,您可以使用Pod::Inherit创建一个临时 podfile,其中还包括来自父模块的 POD(或者如果您正在构建更大的东西,您可以尝试Pod::Weaver

于 2012-07-18T15:39:32.247 回答