虽然我不是 Perl 大师,但我使用 Perl 并且可以以“古老”的方式编写面向对象的程序。
现在我想学习Moose。我已经 (so-as) 咀嚼了基本文档,我的第一个 Moose 和角色已经开始工作了,但我离理解 Moose 的实际工作方式还有很长的路要走。
问题 1:了解 Moose 如何编写“相当不错”的程序是绝对必要的吗?
老实说,我不太了解旧的对象系统。我隐约记得读过的东西是它实际上是对数据结构的引用,但我从未深入探索过。我知道如何以及何时需要使用等就足够了bless
,autoload
而且事情很简单。也许我的一些旧模块可以更有效地编写。但对我来说,它们工作得很好。
这和Moose一样吗?还是有人用 Moose 编写“足够好”的程序需要了解它“内部”是如何工作的?
出现这个问题的原因如下:
METACPAN 中有几十个模块,可以帮助更轻松、更简单地编写 Moose 对象。
随机示例:
- https://metacpan.org/module/MooseX::StrictConstructor(好的,容易理解)
- https://metacpan.org/module/MooseX::HasDefaults(好的,简单)
- https://metacpan.org/module/Method::Signatures::Simple(凹凸!不知道什么是签名,这个模块是“简单”的。)
- https://metacpan.org/module/MooseX::AlwaysCoerce /hmm.... :(/
- https://metacpan.org/module/MooseX::LazyRequire /hmm... :(/
- https://metacpan.org/module/MooseX::AbstractMethod
- https://metacpan.org/module/MooseX::AttributeShortcuts(常用属性选项的简写 - 所以它可能是一个助手 - 但是,学习真的有用吗?)
还有更多(不想在这里引用另外 10-20 个模块)
现在主要问题是:
是否有任何包含以下说明、示例和建议(良好做法)的好书:
- 建议从上面列出的模块中从一开始就常规使用哪些模块?
上面的模块肯定不是开发出来的,只是因为作者没有做什么。当然,它们是有用且有帮助的。但是学习(阅读:试图理解)数十个不同的模块(尤其是那些使用 Moose 内部组件的模块)是一个极其漫长的过程。另一方面,如果不使用它们,我的程序将变得不必要地复杂,我将处理已经解决的问题。
Moose 应该是(并且可能是)一个革命性的系统。只有我开始迷路了。
编辑:我刚找到驯鹿。可能这个模块是对这个问题的部分回答: 从一开始(或大部分时间)什么模块是有用的
PS:我不确定这个问题是否适合SO。如果没有,请将其移至某处或将其关闭。我在这里问它是因为 SO-perl 社区是一个非常有帮助的地方,我不知道如何继续学习 Moose。