gpt4 book ai didi

perl - MooseX::Declare 和 MooseX::Method::Signatures 生产准备好了吗?

转载 作者:行者123 更新时间:2023-12-04 00:04:56 25 4
gpt4 key购买 nike

来自 current version (0.98)Moose::Manual::MooseX是行:

We have high hopes for the future of MooseX::Method::Signatures and MooseX::Declare. However, these modules, while used regularly in production by some of the more insane members of the community, are still marked alpha just in case backwards incompatible changes need to be made.



我注意到对于 MooseX::Method::Signatures change log 2009 年 9 月提到删除“可怕的 ALPHA 免责声明”。
那么,这些仍然是“阿尔法”吗?
我还会被认为是使用它们的“更疯狂”的人之一吗?

最佳答案

我想说它们已经准备好生产了——我在生产中使用它们——但有几件事需要考虑:
表现
MooseX::Declare 和依赖项几乎在编译时完成了所有的魔法。根据程序的大小,您可能会发现半秒到几秒的额外初始化开销。如果这是个问题,请不要使用 MooseX::Declare .
在运行时,主要开销是类型和参数检查,无论如何您都应该(理想情况下)进行检查。也就是说,Moose 类型约束有一些开销,即强制和更复杂的 (MooseX::Types::Structured-style) 约束。如果性能是一个问题,请不要使用这些。
稳定
MooseX::DeclareMooseX::Method::Signature's外部语法现在很稳定。但重要的是要知道内部结构受 的约束。极端 改变。 (幸运的是,变化变得更好)
给你一个想法,签名本身是使用从 Perl 标记器 (toke.c) 窃取的一大块 C 代码获取的。这在某些情况下可能会中断,因为它实际上并没有解析任何内容。括号内的位使用 PPI 解析,它是为纯 Perl 设计的,但是生成的 PPI 树随后会被破解以获得有用的东西。 Devel::Declare本身就是一个 hack - 在它看到特定的关键字(例如,'role'、'class'、'method')之后,使用 Devel::Declare 的模块必须手动重写源代码,而不与真正的 Perl 解析器交互。
极端情况可能会导致 Perl 出现段错误。或者重写源代码很糟糕,所以你会得到语法错误,但不知道是什么导致它们没有 -MO::Deparse .如果你搞砸了MooseX::Declare语法意外,不能保证模块会检测到这个并给你一个合理的错误。 ALPHA 消息可能已经消失,但这仍在执行 黑暗而可怕内部的事情,你应该为此做好准备。
更新
MooseX::Declare 没有太多更新,您不妨看看 Moops 等替代方案.就我个人而言,我决定坚持使用纯 Moose,直到 Perl 本身开始支持原生的类/方法/has 语法,即 possibly on the cards .

关于perl - MooseX::Declare 和 MooseX::Method::Signatures 生产准备好了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2322181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com