问题标签 [moose]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
621 浏览

perl - 是否有关于迁移到 Moose 的非常好的网络资源?

包含模块本身的文档非常薄,而且往往指向 MOP。

0 投票
4 回答
2278 浏览

perl - Perl::Critic: Moose 之后的生活?

我已经开始将一个项目转换为 Moose,我注意到的第一件事是我的批评/整洁测试陷入困境。Moose、Tidy 和 Critic 似乎不像以前那么喜欢彼此了。

是否有关于如何让评论家/整洁者更欣赏驼鹿方言的文档?大多数 Moose 用户都做什么?为更重的 Moose 模块放松/放弃评论家?自定义政策?

0 投票
3 回答
282 浏览

php - CLOS 类似于 PHP 的对象模型

我从Moose回到了 php 开发,我真的很想念 CLOS,比如 php 的对象模型。是否有某种语法糖可以让我在处理对象时在 php中编写更少的代码?

只是为了更加强调这一要求。我不想在几个地方写一件事。我可以忍受自动生成的部分代码,但是在我必须看到开发的代码中,我不想看到只是混乱的冗余信息(想想:如果你真的需要更多类比的话:LISP 宏)。因此,如果这更有意义的话,这部分也可以称为 DSL。

我希望至少有一些角色(mixins),以及某种内省,而无需重新发明轮毂。代码生成器和自动加载器可能是至少部分解决此问题的一种方法。

ps 对于 JavaScript,有Joose,所以类似的 API 会非常有用。

0 投票
2 回答
1016 浏览

perl - 如何在 Perl Moose OOP 中动态调用对象?

这是经典的对象模型:

我想将其转换为 Perl Moose 类模型。

以便,

我将调用视图方法,例如

}

我不知道要调用哪个视图。但在运行时,必须创建 View1/View2 实例并调用 DoSomethingForView()。

上面的代码并不完全是 Perl。如何在 Perl 中翻译和实现这一点。

Application 对象应该有 View 对象,但我们在编译时不知道视图的类型。我们有一个测试应用程序,在 Perl 中开发。

您可以想象 Application 是一个 GUI 应用程序,而 View 是您在应用程序窗口中看到的内容。用户可以选择任何视图。

我对我的英语感到抱歉。如果我需要提供更多文字,请告诉我。

0 投票
4 回答
963 浏览

perl - 你如何在 Perl 中进行契约式设计?

我正在研究在我们的 Perl 项目中使用 DbC,并且我正在尝试找到在源代码中验证合同的最佳方法(例如检查前置/后置条件、不变量等)

Class::Contract由 Damian Conway 编写,现在由 C. Garret Goebel 维护,但看起来已经有 8 年多没有人碰过它了。

看起来我想使用的是Moose,因为它似乎可以提供可用于 DbC 的功能,但我想知道是否有人有任何资源(文章等)来说明如何解决这个问题,或者如果我找不到任何有用的模块。

有人用 Perl 做 DbC 吗?我是否应该“跳入”Moose,看看我能为我做些什么?

0 投票
2 回答
558 浏览

perl - 我可以使用 MooseX::Declare 在类之外定义函数吗?

我最近开始使用模块MooseX::Declare。我喜欢它的语法。它优雅而整洁。有没有人遇到过您想在一个类中编写许多函数(其中一些很大)并且类定义运行到页面中的情况?是否有任何解决方法可以使类定义仅在类外部声明函数和真正的函数定义?

我正在寻找的是这样的 -

我可以看到有一种方法可以使类可变。有谁知道该怎么做?

0 投票
3 回答
716 浏览

perl - 为什么 Moose 的 builder 取一个字符串值?

Moose::Manual::Attributes状态:

作为使用子例程引用 [默认] 的替代方法,您可以为您的属性提供一个构建器方法: ... 这有几个优点。首先,它将一大块代码移动到自己的命名方法中,这提高了可读性和代码组织。

因此,您的属性可以这样定义一个默认值:

我不明白为什么这必须与默认值分开。您不能只传递对命名子例程的引用吗?

这不是更好的编程实践吗,因为保证不会意外引用不存在的子例程?您将使用逻辑引用而不是符号引用来引用该方法。

0 投票
3 回答
1863 浏览

perl - 如何处理 Moose 中的可选参数?

我目前使用“Moose”包从 Perl OOP 开始。

编译器抱怨它“无法在 Parser.pm 第 16 行修改非左值子例程调用”。

我不太明白为什么我不能只分配一个新对象。我猜有更好或更有效的方法来使用 Moose 执行可选参数?

0 投票
1 回答
1197 浏览

perl - 在 Perl 中从 Moose 迁移到鼠标 - 鼠标不执行 BUILD

为了速度,我正在尝试从 Moose 迁移到 Mouse,但遇到了 showstopper 错误。

我正在同一范围内构建两个对象:

Foo 的 BUILD 方法正在触发,但 Bar 的 BUILD 方法没有。有任何想法吗?Foo 和 Bar 都继承自 Baz,而 Baz 继承自 Mouse::Object。

0 投票
1 回答
245 浏览

perl - 如何在角色中使用 MooseX::ClassAttribute?

我想在角色中使用 MooseX::ClassAttribute。即,做类似的事情

不幸的是,上面的代码不起作用,因为 MooseX::ClassAttribute 的深层魔法期望从 Moose 对象而不是 Moose::Role 中调用。
有没有办法解决这个问题,或者这是一个已知的限制?