为什么"需要rubygems"是"错误的"?

uzo*_*uzo 9 ruby rubygems anti-patterns

根据这篇文章,要求rubygems是一个反模式.

require 'rubygems'
Run Code Online (Sandbox Code Playgroud)

这个论点似乎归结为:

当我使用你的库,部署你的应用程序,或运行你的测试我可能不想使用rubygems.当您在代码中需要"rubygems"时,您将无法做出决定.我不能不要求rubygems,但你不能首先要求它.

但是,当您与其他人一起创建和共享代码库时,您所要求的任何Ruby库都无法进行相同的论证吗?

Mat*_*ggs 10

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

我没有想到的一点是,rubygems是坏的,或者人们不应该使用它.我使用rubygems并认为它是Ruby成功的关键部分 - 我在我的库源代码中的任何地方都没有"require'rubygems'",因为它不是必需或方便的,并且使得其他环境很难/不可能(如bundler,rip,GAE,debian,hand rolled等)使用没有rubygems的库,这通常很重要.

在我阅读它之前,我实际上并不是真的同意他,现在我做了


sep*_*p2k 9

有需要的RubyGems的主要问题是它会造成没有,即使他们确实有你真的想要求库安装RubyGems后的系统出错.

有些人通过在需要rubygems时拯救LoadError来解决这个问题,但这有点难看.