麋OOP或标准Perl?

我将为网站编写一些抓取工具,其想法是,该网站将使用一些后端Perl脚本从其他网站获取数据,我的设计(以非常抽象的方式)将被写入一个包,让我们说:
package MyApp::Crawler::SiteName

其中网站名称将是用于抓取特定网站的模块/软件包,我显然将会有其他软件包将在不同模块之间共享,但与此不相关.

无论如何,做长时间,我的问题是:为什么(或为什么不…)我应该更喜欢Moose超过标准OO Perl?

谢谢,

解决方法

虽然我不同意Flimzy的介绍(“我没有使用麋,但我使用了这个使用麋的东西”),我同意他的前提.

使用你觉得你可以产生最好的结果.如果(或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提供的工具编写更少的可维护性,可怕的代码,有几个故事.坏的程序员可以在任何地方写错码.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...