2

如果我正在为已建立的库编写帮助程序,我应该TheirLibrary::MyHelper在他们的命名空间中创建一个模块,还是留在外面并自己制作::TheirLibraryMyHelper

我认为是可预见的一致,库通常有在其命名空间中添加扩展的先例,例如Spec::Rails,它是 RSpec 的 Rails 助手插件,在现有的::Spec命名空间中。

另一方面,我不觉得我“拥有”其他作者的命名空间,所以我应该有任何业务添加子命名空间吗?

4

2 回答 2

1

我会远离他们的命名空间(无论你最终选择如何命名你的扩展命名空间),因为这意味着你不会意外地与他们决定在路上做的事情发生冲突。

于 2012-06-21T19:49:20.880 回答
0

环顾四周,我注意到“插件”或“扩展”宝石的约定是必需的:

require 'coolthing/plugin'对应命名空间Coolthing::Plugin

而其他项目是

require 'coolthing-plugin'对应于唯一的命名空间CoolthingPlugin

通常只有那些“官方的”被嵌入到原始命名空间中。那些来自不同方的后续添加应该使用他们自己的命名空间。

于 2012-07-23T01:33:47.057 回答