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