【问题标题】:Why is it "wrong to require rubygems"?为什么“要求 rubygems 是错误的”?
【发布时间】:2010-11-28 21:18:49
【问题描述】:
根据this post,要求 rubygems 是一种反模式。
require 'rubygems'
这个论点似乎可以归结为:
当我使用你的库时,部署你的
应用程序,或运行我可能不想要的测试
使用红宝石。当您需要
'rubygems' 在你的代码中,你删除我的
做出该决定的能力。一世
不能不需要 rubygems,但你可以
一开始就不需要它。
但是当您创建并与其他人共享代码库时,对于您“需要”的任何 Ruby 库,难道不能提出相同的论点吗?
【问题讨论】:
标签:
ruby
rubygems
anti-patterns
【解决方案1】:
如果你看cmets,你会看到作者这样说
我没有试图说明的重点是
那个 rubygems 是坏的或者那个人
不应该使用它。我使用红宝石和
认为这是 Ruby 的关键部分
成功——我只是没有电话线
“需要'rubygems'”在我的任何地方
库的源代码,因为它不是
必要或方便,并使其
其他人很难/不可能
环境(如 bundler、rip、GAE、
debian、手卷等)使用
没有 rubygems 的库,即
通常很重要。
在我读之前我真的不同意他,现在我同意了
【解决方案2】:
需要 rubygems 的主要问题是它会在没有安装 rubygems 的系统上导致错误,即使它们确实具有您实际需要的库。
有些人在需要 rubygems 时通过挽救 LoadError 来解决这个问题,但这有点难看。
【解决方案3】:
Rubygems 对应用程序来说不是必需的,它只是提供库的一种便捷方式。相比之下,使用的其他库对于应用程序来说是必不可少的。