如果我正在为已建立的库编写帮助器,我是应该在它们的名称空间中创建一个TheirLibrary::MyHelper模块,还是应该置身事外,创建自己的::TheirLibraryMyHelper
我认为,为了保持可预测的一致性,库通常有向其名称空间添加扩展的先例,例如Spec::Rails,这是RSpec的rails助手插件,在现有的::Spec名称空间中。
另一方面,我觉得我并不“拥有”其他作者的名称空间,所以我应该向它添加子名称空间吗?
发布于 2012-06-22 03:49:21
我会置身于他们的命名空间之外(不管你最终选择如何命名你的扩展命名空间),因为这意味着你不会意外地与他们决定要做的事情发生冲突。
发布于 2012-07-23 09:33:47
环顾四周,我注意到“插件”或“扩展”gem的约定要求如下:
与命名空间Coolthing::Plugin对应的require 'coolthing/plugin'
而其他项目则是
唯一命名空间CoolthingPlugin对应的require 'coolthing-plugin'
通常,只有那些“官方”的名称空间才会嵌入到原始名称空间中。那些来自不同参与方的后续添加应该使用自己的名称空间。
https://stackoverflow.com/questions/11144325
复制相似问题