package MyApp::Crawler::SiteName
其中网站名称将是用于抓取特定网站的模块/软件包,我显然将会有其他软件包将在不同模块之间共享,但与此不相关.
无论如何,做长时间,我的问题是:为什么(或为什么不…)我应该更喜欢Moose超过标准OO Perl?
谢谢,
解决方法
使用你觉得你可以产生最好的结果.如果(或a)目标是学习如何有效地使用Moose,那么使用Moose.如果目标是产生良好的代码并学习Moose将会分心,那么不要使用Moose.
你的问题是开放式的(正如其他人所指出的).没有答案将被普遍接受为真,否则麋鹿的采用率将会高得多,我不会回答这一点.我真的只能解释为什么我每次开始一个新项目时选择使用Moose.
由于Sid引用了Moose文档.自从Perl 5.0发布以来,Moose的核心目标就是成为面向对象Perl程序员一直在做的更清洁,标准化的方式.它提供了捷径,使做正确的事情比做错事更简单.在我看来,在标准Perl中缺少某些东西.它提供了新的工具,使您的问题更简单地将您的问题简化为更容易解决的问题,并且它提供了一个强大的内省和元编程API,它试图使从Perl空间中窃取Perl内部的野兽(即我以前指的是作为符号表巫师).
我发现自从我开始使用Moose [^ 1]以来,我对“太多”代码的自然感觉已经减少了66%.我发现,我更容易遵循良好的设计原则,如封装和信息隐藏,因为Moose提供了更简单的工具.因为麋鹿自动产生我通常必须写出的许多锅炉板(如访问器方法,委托方法和其他类似的东西),我发现很快就能快速开始我正在做的六个月前.我也发现自己写的不那么棘手的代码,只是为了挽救我几年前的几个击键.
可以编写干净,健壮,优雅的面向对象Perl,不使用Moose [^ 2].在我的经验中,需要更多的努力和自我控制.我发现在项目要求我不能使用Moose的情况下,我的常规面向对象代码已经从我从Moose中获取的习惯中受益.我想像这样,我会考虑用Moose编写它,然后键入三倍的代码,我写下我期望Moose将为我生成的代码[^ 3].
所以我使用Moose,因为我发现它使我更好的程序员,因为它,我写更好的程序.如果你没有发现这也是真的,那么麋鹿不是正确的答案.
[^ 1]:当我在模块中达到〜300行代码时,我开始思考我的设计.现在我开始感到不舒服〜100行.
[^ 2]:宫川在Twiggy的代码是一个很好的例子,我正在读书.
[^ 3]:这并不普遍.关于人们通过使用Moose提供的工具编写更少的可维护性,可怕的代码,有几个故事.坏的程序员可以在任何地方写错码.