【问题标题】:Boson vs Thor for console applications用于控制台应用程序的 Boson vs Thor
【发布时间】:2011-04-11 11:17:59
【问题描述】:

有人用过BosonThor吗?

Thor 非常受欢迎,比 Boson 拥有更多的追随者和贡献者,但 Boson 看起来比 Thor 强大得多,而且架构经过深思熟虑。

在玻色子中你:

  • 可以添加在控制台和 ruby​​ 环境中都使用的方法。因此,您不必同时拥有用于控制台的 Thorfiles 和用于 ruby​​ 的 gem。
  • 可以有别名。
  • 不必安装脚本文件,只需将它们放在 ~/.boson/commands 中即可。每次更新后,我总是不得不为卸载和安装 Thorfiles 而苦苦挣扎(编辑源代码时可能是每一分钟,非常令人沮丧)。
  • 具有比 thor 更好的命令输出。
  • 不必像在 Thor 中那样手动编写参数描述。
  • 使用模块,这比使用类更好,因为您可以在其他模块中包含模块。
  • 自动将开源 sn-ps(例如,来自 Gist)封装在模块中,并立即与 Boson 一起使用。
  • 对您的方法结果有不同的看法。
  • 不必重新编码您的 sn-ps 中的任何内容以适应 Thor,因为它只使用本机 ruby​​ 代码(模块)。这意味着如果您有一天不想使用 Boson,则不必重新编码所有内容,如果您使用的是 Thor,则必须这样做。
  • API 的文档记录更好 - 就像每个课程中的教程一样。
  • 您可以在您的 ruby​​ 脚本中包含“玻色子”模块并直接使用它们,这是我在 Thor 中无法做到的,因为它仅适用于 Thor。您不能与其他 Thor 类共享 Thor 方法(不能作为 mixins)

我只是通过阅读文档并与 Boson 玩了几分钟就注意到了所有这些好处。

我应该仅仅因为 Thor 更受欢迎而使用 Thor(因为我找不到其他任何可以让 Boson 发光的东西)还是应该冒着 Boson 可能在一段时间后无人维护的风险,因为作者是唯一的贡献者?

虽然只有一个人,但您可以看到他如何以极快的速度和出色的质量进行编码。如果有更多像他这样的贡献者为该库做出贡献,那就太好了。我真的希望更多的 ruby​​ 爱好者会使用它,因为它有很大的潜力成为所有系统自动化的脚本框架。就像后端的 Rails。当您提出问题时,作者确实可以非常快速地帮助您。

Thor 仅适用于外壳(我猜这是它的用途),而我看到的 boson 具有 3 个主要功能。它允许您在 shell、ruby(irb 和脚本)中运行代码,并且您可以拥有所有 Ruby 代码的漂亮集合,而无需修改。

我一直想要一个框架作为我的后端脚本框架,现在我不必重新发明轮子。看来玻色子可能是它。

有人用过这两个库并可以分享一些想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby console thor


    【解决方案1】:

    免责声明:我是 boson 的作者。

    我都用过,而雷神正是激发我写玻色子的灵感。虽然两者具有重叠的功能,但我认为它们具有不同的目标。

    Thor 是一个脚本框架,它可以快速而美观地为应用程序提供命令行界面。依赖它的The 116 gems (including rails) 就是很好的证明。最初我尝试使用 thor 来管理和使用 sn-ps,但过了一段时间,强制命名空间、缺少别名、编写多余的使用行以及糟糕的搜索,让我意识到 thor 没有针对管理 sn-ps 进行优化。

    所以我写了 boson 来管理我曾经放入 ~/bin with this philosophy in mind 的无数 ruby​​ sn-ps。 At 400+ commands,我可以立即找到并使用任何 ruby​​ sn-p 作为成熟的可执行文件。尽管您似乎知道 boson 的一些优势,但这里有太多功能需要介绍。至于作为唯一的贡献者,我欢迎任何人贡献他们的想法。

    如果要在两者之间做一个简单的比较,我会说 thor 专注于为项目和应用程序创建可执行文件,而 boson 专注于为用户创建它们。

    【讨论】:

    • 很好的比较。我期待着全职为这个项目做出贡献,因为它以用户为中心。我有很多 sn-ps 我想直接在 shell/console 中使用,而不是复制和粘贴。
    • 作者惊人的非利益冲突回应。
    • 更新:boson >= 1.0 对应用程序可执行文件也有类似雷神的支持。 the readme 中的示例。与thor的一个特征对比是also in the readme
    • 太棒了,这最后的评论让我更深入地了解了。我发现的前 4 页似乎没有提到这一点。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2022-01-27
    相关资源
    最近更新 更多