Dancer 与 Catalyst [Perl Web 框架] [关闭]

2024-01-05

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


我认为大卫的评论非常准确和出色。然而,作为两者都做过开发但不是开发人员的人on或许我可以更客观(和技术性)地了解差异所在。

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

Catalyst 的主要抽象级别是控制器。 Catalyst 希望您以某种逻辑方式将单独的逻辑分解为单独的包(登录代码为here,注册码去there, 搜索功能超过here)。如果您有一个程序员团队,那么这种方法非常有效,因为每个人都可以处理单独的文件,而不会在合并过程中相互干扰。 Catalyst 提供了很多工具来使控制器逻辑可扩展且灵活,我认为最好的例子是链式操作,它可以让您针对任何给定的请求拆分并构建复杂的流程。缺点是,将业务逻辑放入控制器中变得非常诱人,并且最终会在控制器中得到非常丰富的逻辑,而它(理论上)属于模型。

Dancer 的主要抽象层次是路线。我对 Dancer 的经验是这会导致much较小的应用程序。我在这里的经验部分是因为我已经在 Catalyst 中处理了数千行应用程序,但我还没有编写一个超过 200 行的 Dancer 应用程序(带有一个much范围较小)。但我认为这个经验是正确的。 Dancer 的推动力在于保持控制器逻辑非常精简,因为它没有与 Catalyst 相同的工具来管理复杂行为。

老实说,我很享受在这两家公司工作。他们对于如何编写 Web 应用程序提出了不同的看法。如果有时间和意愿,我会建议学习both最终。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Dancer 与 Catalyst [Perl Web 框架] [关闭] 的相关文章

  • 使用 ActivePerl 时为什么必须指定带有备份扩展的 -i 开关?

    除非我使用备份扩展指定它们 否则我无法就地编辑在 ActivePerl 下运行的 Perl 单行代码 C gt perl i ape splice F 2 0 q inserted text qq F n file1 txt Can t d
  • 哪些字符可以用作正则表达式分隔符?

    哪些字符可以用作 Perl 正则表达式的分隔符 m re m re and m re 一切似乎都有效 但我想知道所有可能性 From perlop http perldoc perl org perlop html 通过 m 您可以使用任意
  • CS0246 找不到类型或命名空间名称“ErrorViewModel”(您是否缺少 using 指令或程序集引用?)

    我收到 CS0246 错误代码 我正在做一个 MVC net core 项目 我正在将 Razor 合并到我的 C 代码中 我在进行构建时收到此错误 我在最后一行收到错误 有人能帮我解决这个问题吗 global Microsoft AspN
  • 无法在 Mac 上安装 DBD::mysql

    第一次发帖 格式可能不太对 请见谅 我一直在尝试使用 cpan 在 macOS Catalina 上安装 DBD mysql 但尚未成功 我使用了perlbrew 并尝试了mysql和mariaDB 但仍然没有成功 另外 我在网上研究了不同
  • 由于握手问题,PerL SSL 连接尝试失败

    我希望有人可以提供帮助 我正在使用 nagios 插件 check ilo2 health 该插件在我们的 OpenSuSE 系统上运行良好 但新的 Ubuntu 14 04 系统有问题 删除 nagios 的东西并运行 perl 基本上是
  • 如何将 cpanminus 与本地 CPAN::Mini 一起使用?

    我已经创建了自己的 CPAN 本地副本minicpan http search cpan org rjbs CPAN Mini 1 111007 bin minicpan并设法重新配置 cpan 来使用它 太棒了 但是我将如何使用它cpan
  • 标量值错误(使用 IO::Socket)

    这是我当前的代码 usr bin perl w use strict require IO Socket while lt gt chomp my host my header print Connecting to host n my s
  • Perl LWP::简单 HTTPS 错误

    我正在尝试获取网站的内容并打印 该代码按照我希望的方式在常规 HTTP 网站上运行 但它不适用于 HTTPS 我已经查找了此问题的修复程序 但它们在我的程序中不起作用 这是我目前拥有的代码 usr bin perl use strict u
  • 更新命令行输出

    我的程序 碰巧是用 Perl 编写的 尽管我不认为这个问题是 Perl 特定的 在程序中的某一点输出状态消息 Progress x yy where x and yy是一个数字 例如 Progress 4 38 我想在打印新的状态消息时 覆
  • 为什么Perl的SUPER调用不使用箭头方法?

    我注意到 当您调用超类的方法时 您需要执行以下操作 my self class gt SUPER new 为什么不是这样 my self class gt SUPER gt new 我怀疑是因为 class gt SUPER gt new
  • Perl Moose TypeDecorator 错误。我该如何调试?

    我最近遇到了一个问题 非常感谢您的见解 我在圣诞节前在 PerlMonks 上发布了类似的问题 并提供了一些从 MooseX Declare 切换的反馈 http www perlmonks org node id 877703 1 我现在
  • ActionMailer最佳实践:调用模型或控制器中的方法?

    发送电子邮件通常是在对模型执行操作后调用的 但电子邮件本身是一个视图操作 我正在寻找您如何思考要问自己哪些问题来确定将操作邮件程序方法调用放在哪里 我见过 使用过它们 在模型方法中 相关但独立的关注点耦合不良 在模型的回调中 例如 afte
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • 在asp.net MVC中获取下拉列表的选定值

    我如何获得下拉列表的选择值 这是我的代码 工作正常 var list new new Person Id 1 Name Name1 new Person Id 2 Name Name2 new Person Id 3 Name Name3
  • 使用 Perl 循环 JSON [重复]

    这个问题在这里已经有答案了 我是 Perl 的新手 想要循环这个 JSON 数据并将其打印到屏幕上 我怎样才能做到这一点 arr Year 2012 Quarter Q3 DataType Other 3 Environment STEVE
  • 合并 Perl Hashref 和 unique

    我有两个 Perl 哈希值 内容如下 First VAR1 name1 gt adam bob name2 gt Miller Schumacher Second VAR1 name1 gt tina jason jeff
  • MVC:如何使用ajax?

    我将使用 Zend Framework MVC 实现启动一个项目 我如何使用ajax 我的意思是 我应该将所有 ajax 代码放入控制器中吗 还是进入视野 例如 我想将作者 ivan 的帖子显示在页面上 通常 我创建一个指向 posts a
  • 迭代哈希数组

    我编写了下面的例程 迭代哈希值 0 7 并打印出每个哈希值中特定键的值 我需要获取每个哈希中 b4 的值 我想取消 0 7 当存在不同数量的哈希值时使用更智能的东西 例如 有时只有 2 个 也可能有 160 个 my out decode
  • 如何使用 Perl 更改 mysql 密码

    我需要使用 Perl 脚本更改一些 mysql 密码 以下内容在更改数据库条目时有效 但是当我针对 mysql 用户更改修改它时 它将它们重置为空白密码 最后 刷新权限 也很好 但我还没有找到方法 usr bin perl use DBI
  • 根据插入顺序迭代哈希?

    不想对条目进行排序 使用它也不会保留顺序 foreach my val keys hash 默认情况下 Perl 5 中的哈希值是无序的 您可以使用tie http perldoc perl org functions tie html a

随机推荐

  • C++ 11:智能指针的使用[重复]

    这个问题在这里已经有答案了 使用 smart 的最佳实践是什么 在某些情况下我应该更喜欢使用原始指针而不是智能指针 例如 如果我知道 A 类创建了 B 类并且是 B 类的唯一所有者 是否有理由使用智能指针 如果您知道有关该主题的任何好文章
  • 核心数据问题 - 检查项目是否存在

    我正在研究 NSScreenCast 的一个代码示例 该示例涉及导入到核心数据应用程序 link https github com nsscreencast 012 importing into core data 我的例子大部分都有效 我
  • 如何在.Net Framework 4.8中引用.Net 6.0 dll

    今天是个好日子 我有一个针对 Net Framework 6 0 的类库项目 当我将此 dll 引用到另一个面向 Net Framework 4 8 的项目时 我收到以下错误消息 我会感谢你的帮助 简短的回答是 你不能 NET 6 和 Ne
  • 如何将Python数组(data = [])写入Excel?

    我正在编写一个 python 程序来处理 hdf 文件 我想将此数据输出到 Excel 电子表格 我将数据放入数组中 如下所示 Code data for rec in hdfFile data append rec 从这里我创建了一个 9
  • 通过并行处理,使程序能够由不同的线程同时发送邮件

    我有下面的程序 它使用 java mail api 发送邮件 现在这是我开发的简单程序 我现在想通过使用 executorframework 来修改并行执行 我希望 5 个不同的线程独立地触发我的这个程序但这 5 个不同的线程应该同时触发
  • 长轮询与 Websockets [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我开始开发一个软件 使用 html js 编码的应用程序 我需要从服务器 java 代码 发送此应用程序通知 该应用程序使用 nginx 进行路
  • 如何在生产模式下运行 maven/eclipse/GWT/playN 应用程序?

    如果您想使用以下过程在生产模式下从 Eclipse 启动 playN GWT maven 应用程序 似乎会出现问题 右键单击 playn showcase html 并选择 Goolge GWT 编译 Compiling module pl
  • 在 HTML 中隐藏输入有什么意义?这有哪些常见用途?

    我没有看到隐藏输入的好处 如果您设置隐藏输入的值 为什么不在引用该隐藏输入的位置使用该值呢 这是有原因的 但我只是不知道 它们用于传递提交表单时所需的数据 更常见的情况之一是允许用户编辑某些现有条目的表单 您需要知道他们正在编辑哪个条目 以
  • 使用 HttpURLConnection 发送 UTF-8 字符串

    到目前为止 我已经使用以下代码片段来发送和接收 JSON 字符串 static private String sendJson String json String url HttpClient httpClient new Default
  • 未捕获错误:ReCAPTCHA 占位符元素必须是元素或 id

    我正在将 ReCAPTCHA 添加到具有多个联系表单的 Bootstrap Jekyll 网站 页脚中有一个弹出模式 偶尔有一个 立即联系我们 部分 还有几个页面上有一个 请求有关 的更多信息 由于我在一个页面上有多个联系表单 因此我需要显
  • 将 Python 最小化到系统托盘并生成通知? [复制]

    这个问题在这里已经有答案了 我环顾四周 但找不到任何可以接近做我想做的事的东西 我想让我的 Python 脚本作为最小化的系统托盘应用程序启动 或者能够最小化到系统托盘 并且能够发出系统托盘通知 有人有任何想法 库或示例吗 谢谢 海福莱克斯
  • 从 Swift 中的 Eureka Forms 获取值

    我是 Swift 编程新手 我正在尝试使用 Eureka 库创建一个表单 该表格已经可以使用 但我无法从表格中获取数据 我试图将数据一一存储到全局变量中 以便在按下按钮时打印 问题是代码总是被破坏 我不知道如何纠正它 这是我的代码 impo
  • 如何在没有支持表的情况下在 Rails 中创建只读模型

    我想创建只读模型 这可能是一些复杂的结果 与任何直接表模型类关系不大的联接或聚合查询 我已经定义了 例如想象中的 ActiveRecord View 类 class B lt ActiveRecord View default scope
  • 用Java编写一个mode方法来查找数组中出现次数最多的元素

    问题是 编写一个名为 mode 的方法 该方法返回整数数组中最常出现的元素 假设数组至少有一个元素 并且数组中的每个元素的值都在 0 到 100 之间 含 0 和 100 通过选择较低的值来打破平局 例如 如果传递的数组包含值 27 15
  • 使用mysql递归调用存储过程

    enter image description here https i stack imgur com h5aNM pngget legside from binary https i stack imgur com sJvWh png
  • TextAreaFor 无法设置宽度

    我无法设置文本区域中的列宽度 行 高度效果很好 有人可以帮忙吗谢谢 using Html BeginForm Html AntiForgeryToken Html ValidationSummary true Html TextAreaFo
  • 如何在Powershell中输出多个哈希表

    我有一个键 值对哈希表的哈希表 来自 ini 文件 它看起来像这样 Name Value global Variables
  • TableModel 火灾方法如果不可见则昂贵

    在java swing表模型中 我们能够触发表更改 添加 删除等 我想知道如果组件不可见 这些方法调用是否会很昂贵 例如 另一扇窗户覆盖着它 或者它位于非活动选项卡中 为了最大限度地减少触发大量更新事件的影响 JTable 渲染 http
  • 如何在 ContainerRequestFilter 中检索请求的匹配资源

    我正在使用 JAX RS Jersey 开发 Web 服务 我已经设置了一个容器请求过滤器其目的是验证用户身份 我只需要通过身份验证保护某些路径 其余的路径可供所有人使用 我想通过 ContainerRequestFilter 中的 Ext
  • Dancer 与 Catalyst [Perl Web 框架] [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi