ruby - 在 Ruby 中命名命名空间的首选方式(更好的风格)是什么?单数还是复数?

标签 ruby module namespaces naming-conventions naming

使用的优缺点是什么:

FooLib::Plugins
FooLib::Plugins::Bar

对比

FooLib::Plugin
FooLib::Plugin::Bar

命名约定?你会用什么或者你在用什么?社区里比较常用的是什么?

最佳答案

使用:

module FooLib end
module FooLib::Plugins end
class  FooLib::Plugins::Plugin; end #the base for plugins
class  FooLib::Plugins::Bar < FooLib::Plugins::Plugin; end
class  FooLib::Plugins::Bar2 < FooLib::Plugins::Plugin; end

或者换句话说:

module FooLib
  module Plugins
    class Plugin; end #the base for plugins
    class Bar < Plugin; end
    class Bar2 < Plugin; end
  end
end

也像这样排列文件:

- foo_lib/
  - plugins/
    - plugin.rb
    - bar.rb
    - bar2.rb

这是 how Rails does it (所以这就是 Rails 方式)。 IE。查看 Associations 命名空间和 Associations::Association class Associations 命名空间的所有类都从中继承(即 Associations::SingularAssociation )。

关于ruby - 在 Ruby 中命名命名空间的首选方式(更好的风格)是什么?单数还是复数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9293023/

相关文章:

ruby - 从 ruby​​ Socket.ip_address_list 中识别所有相关的 IP 地址

ruby-on-rails - 使用 Rails 在同一页面上显示多个表单

Ruby:JSON.parse 返回未定义的方法 `bytesize'

python - 如何仅在模块中的函数运行后才将模块导入到Python模块中?

javascript - 变量声明是否成为 ecmascript 6 模块中窗口的属性?

c#运行时丢失引用

ruby - 从字符串构造 Ruby 二叉树

c - 错误: dereferencing pointer to incomplete type -> passing structure to module

php - 自动加载和命名空间

c# - 尽管我在解决方案资源管理器中有文件夹,但无法使用它们 [Visual Studio 2012]