28

你对两者有什么看法?我开始阅读一本关于 Catalyst 的书,发现它与 Dancer 相比相当复杂。所以现在我尝试一下 Dancer,它看起来更容易学习和更“人性化”。

4

3 回答 3

32

我认为大卫的评论非常准确和出色。然而,作为一个在这两个方面都做过开发但不是开发人员的人也许我可以稍微客观一点(和技术性)来了解差异是什么。

这两个框架都提供了 Web MVC 范式的变体。

Catalyst 的主要抽象层是 Controller。Catalyst 希望您以某种逻辑方式将单独的逻辑分解为单独的包(登录代码在此处,注册代码在此处,搜索功能在此处)。如果您有一个程序员团队,这将非常有效,因为你们每个人都可以处理单独的文件,而不会在合并过程中互相踩踏。Catalyst 提供了许多工具来使控制器逻辑可扩展和灵活,我认为这方面的首要示例是链式操作,它可以让您为任何给定的请求拆分并构建复杂的流程。不利的一面是,将您的业务逻辑放入控制器中变得非常诱人,并且最终在控制器中(理论上)属于模型的控制器中的逻辑非常胖。

Dancer 的主要抽象层次是 Route。我对 Dancer 的经验是,这会导致应用程序小。我在这里的部分经验与我在 Catalyst 中处理过数千行应用程序的事实有关,但我还没有编写过超过 200 行的 Dancer 应用程序(范围小得多)。然而,我认为这种经验是正确的。Dancer 的推动力在于保持控制器逻辑非常精简,因为它没有像 Catalyst 那样管理复杂行为的工具。

老实说,我很喜欢在他们两个公司工作。他们都对编写 Web 应用程序的内容提供了不同的意见。考虑到时间和倾向,我会建议最终同时学习两者。

于 2011-02-22T16:41:47.490 回答
29

这是一个有点主观的问题,但我会尽量客观地给你一个答案。首先,免责声明:我是 Dancer 开发团队的一员,所以我的意见当然应该被认为有些偏见:)

Catalyst比 Dancer 使用更广泛,因此它背后有更多的社区支持 - 如果您要寻找具有使用任一框架的经验的承包商,您将更有可能找到使用过 Catalyst 的开发人员。因此,如果您正在寻找商业支持,那将是选择 Catalyst 的一个很好的理由。

Dancer是一个年轻的项目,更多地针对较小的项目,使启动和运行变得快速和容易,并尽量不妨碍您。然而,这并不是说 Dancer 不适合大型项目。不妨碍你的习惯意味着你可以以适合你的方式组织你的项目。

然而,它获得了很多支持,并且在 IRC 和邮件列表上有越来越多有用的用户和开发人员社区,并且越来越多的有用插件一直在发布。与 Catalyst 一样,Dancer 的设计使您可以选择自己喜欢的模板引擎、会话存储后端等,如果需要,可以通过编写自己的插件来轻松扩展框架。

有关用户评价以了解人们对 Dancer 的评价,请参阅新网站主页底部的部分:http ://www.perldancer.org/

为了展示其他选项,还有Mojolicious,这是另一个最近流行的现代 Perl Web 框架。

于 2011-02-22T15:57:39.393 回答
4

Catalyst 提供了与 Dancer 相同的抽象,Dancer 的优势或者更确切地说是 Catalyst 的弱点或者更确切地说是 Dancer 的弱点在于 Catalyst 如何迫使开发人员遵守 Perl OO 最佳实践和 MVC 设计模式。在做了一段时间的 webapps 之后,这一切都会变得明显。

于 2011-02-22T16:03:22.660 回答