2009-09-16 27 views
9

根据this post,要求rubygems是一个反模式。为什么“错误的要求rubygems”?

require 'rubygems' 

的说法似乎归结为这样:

当我用你的库,部署 的应用程序,或者运行测试,我可能不希望 使用RubyGems的。当您在代码中需要 'rubygems'时,您将删除我的 做出该决定的能力。我不能不要求rubygems,但你可以不要求它在第一个地方 。

但是,当您创建并与其他人共享代码库时,您对“需要”的任何Ruby库都无法提供相同的参数吗?

回答

9

的主要问题,要求RubyGems是,这将导致系统错误没有安装,即使RubyGems的他们确实有你想要的图书馆。

有些人在需要rubygems的时候通过调用LoadError来解决这个问题,但这很丑陋。

9

如果你看一下评论,你会看到作者说这

我并不想指出的一点是 是RubyGems是坏,或者人 不应该使用它。我使用的RubyGems和 认为这是Ruby的 成功的关键部分 - 我只是没有行 “规定‘RubyGems的’”在我 库的源代码的任何地方,因为它不是 必要或方便,使得它 硬/其他 环境(如bundler,rip,GAE, debian,手卷等)不可能使用 库,而不使用rubygems,这是经常重要的 。

其实我真的不同意他的意见之前,我读了它,现在我做

0

Rubygems对于应用程序来说不是必不可少的,它只是提供库的一种便捷方式。相比之下,使用的其他库对应用程序是必不可少的。