【发布时间】:2010-12-13 12:01:30
【问题描述】:
有人听说过用于应用程序/脚本的 Ruby MVC 框架吗?
Rails 出现时 - 它是一个革命性的工具,因为它将 MVC 带给了广大 Web 开发人员,并一度迫使他们使用设计模式和约定。我正在寻找类似的东西,但要编写要从 cron 或由用户运行的普通管理任务:更新、备份、管理工具箱等。现在我确信每个人都有自己喜欢的设置方式应用程序和工具箱,但我想知道是否有 MVC 做事方式。一些会迫使我使用设计模式和约定的东西(我很内疚,就像我确信其他人一样,偶尔使用快捷方式)。
现在我尝试了 narf 和 bowine - 但我认为 narf 已被放弃,并且 bowine 面向 GUI 并且处于早期 alpha 阶段。
根据反馈,我想澄清一下:当你启动一个新的网络应用程序时——无论多么小——你将使用 ruby 或 merb 或 ramaze 或你有什么。您这样做是为了能够使用这些框架中的所有优点和最佳实践。当然,您可以只编写自己的小型服务器和一个文件 Web 应用程序,但为什么呢?所以我想知道是否有类似的应用程序/脚本框架。
那么大家有什么推荐的吗?
评论以下几个cmets: @Michael:我之前研究过 chef 和 puppet,两者都很好,但是 - 它们更多地用于自动化设置任务,而不是编写应用程序。
@mansu:我不想替换 Cron 或计划任务——它们已经做得很好了。我只是想让他们运行我的 MVC 脚本。
@Robert:Anvil 听起来要放弃了——最后一次更新是从 2007 年开始的,它旨在成为一个 GUI 框架。我不认为这是矫枉过正 - 原因是现在我使用了大约 40 个脚本(将数据从客户 csv 更新到 mysql、运行备份、在 ftp 上运行脚本等),我确定它一定会成长。我开始意识到我的一些脚本做同样的事情——比如将数据从 csv 更新到 mysql,所以我重构了我的代码以拥有一个使用配置文件的通用库。所以我认为这不是矫枉过正。我只是想知道是否已经有一个框架。
@mereghost:从 GUI 的角度来看,RuGUI 非常有趣,值得进一步研究。似乎正在积极维护。我会看看我是否可以使用它,或者我是否可以基于它开发一些东西。
@bantic:不知道我是怎么想念托尔的——我不时查看 Katz 的博客。它有点像我正在寻找的东西,但在某种意义上并不完全是为了开发一个带有一堆选项的工具,即带有一堆关于如何进行复制的参数的复制命令。我想要的东西更像是一个包含大量任务的应用程序。
@Chuck:Chuck,在我开始编写更新数据库的脚本之前,我的想法也差不多。所以从这个意义上说,如果不是视图,我确实有 MVC 的 M 部分。您可能会争辩说我只有一个视图 - 控制台,或者我什至有多个 - 假设我的脚本需要每天运行并更新共享上的一些 .xls 文件,但还要将其输出为 csv,也许还有 tsv 文件,并且能够为客户端服务使用 xml。虽然文件类型的转换(也称为 Rails 中的格式化程序)发生在 Controller 中,但数据的实际布局(假设他们希望 .xls 中的某些字段为粗体和蓝色,以及重新排列的列)应该发生在 View 中。我感觉我已经把事情复杂化了,但另一方面——这就是 PHP 开发人员过去常说的框架,直到 Rails 出现刺激了 PHP 仿制品。 :-)
还要继续这个例子——假设我有一个模型——ClientData,它被各种脚本使用——一些写入该表,一些获取该数据。现在我有 4 个脚本,它们使用该表的各个部分来导入/导出 csv,并且我使用 DBI::MySQL 来创建我的查询并执行它们。问题是,一旦我对该模型(表)进行了更改-我需要确保更新所有 4 个脚本,以反映列名或其他内容的更改。现在,我求助于在脚本加载时需要的一小部分对象和配置文件。但我希望使用适当的框架来执行此操作,而不是使用 Jerry 操纵的解决方案 :-) 这也不适用于 Web 应用程序。我不需要网络界面——因为只有我自己和另一个系统管理员可以访问这个界面。可能我可能需要为用户提供某种访问权限 - 以便授权人员可以强制运行某些脚本 - 但这不是必需的,并且使用说我可以引导 Sinatra 来执行此操作。
【问题讨论】:
标签: ruby model-view-controller frameworks