根据这篇文章,需要 rubygems 是一种反模式。
require 'rubygems'
争论似乎可以归结为:
当我使用您的库、部署您的应用程序或运行您的测试时,我可能不想使用 rubygems。当您在代码中需要“rubygems”时,您将无法做出该决定。我不能不要求 rubygems,但你不能一开始就要求它。
但是,当您创建并与其他人共享代码库时,不能对您“需要”的任何 Ruby 库提出相同的论点吗?
根据这篇文章,需要 rubygems 是一种反模式。
require 'rubygems'
争论似乎可以归结为:
当我使用您的库、部署您的应用程序或运行您的测试时,我可能不想使用 rubygems。当您在代码中需要“rubygems”时,您将无法做出该决定。我不能不要求 rubygems,但你不能一开始就要求它。
但是,当您创建并与其他人共享代码库时,不能对您“需要”的任何 Ruby 库提出相同的论点吗?
如果你看评论,你会看到作者这样说
我没有试图说明的是 rubygems 不好,或者人们不应该使用它。我使用 rubygems 并认为这是 Ruby 成功的关键部分——我只是在我的库的源代码中的任何地方都没有“require 'rubygems'”这一行,因为它没有必要或不方便,并且对于其他环境(比如bundler、rip、GAE、debian、hand rolling 等)在没有 rubygems 的情况下使用库,这通常很重要。
在阅读之前我实际上并没有真正同意他,现在我同意了
需要 rubygems 的主要问题是它会在没有安装 rubygems 的系统上导致错误,即使它们确实具有您实际需要的库。
有些人在需要 rubygems 时通过抢救 LoadError 来解决这个问题,但这有点难看。
Rubygems 对应用程序来说不是必需的,它只是提供库的一种便捷方式。相比之下,使用的其他库对应用程序至关重要。