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

Szy*_*Jeż 27 ruby naming namespaces module naming-conventions

什么是使用的利弊:

FooLib::Plugins
FooLib::Plugins::Bar
Run Code Online (Sandbox Code Playgroud)

FooLib::Plugin
FooLib::Plugin::Bar
Run Code Online (Sandbox Code Playgroud)

命名惯例?你会用什么或者你用的是什么?在社区中更常用的是什么?

Szy*_*Jeż 21

使用:

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
Run Code Online (Sandbox Code Playgroud)

或用不同的词语:

module FooLib
  module Plugins
    class Plugin; end #the base for plugins
    class Bar < Plugin; end
    class Bar2 < Plugin; end
  end
end
Run Code Online (Sandbox Code Playgroud)

还安排这样的文件:

- foo_lib/
  - plugins/
    - plugin.rb
    - bar.rb
    - bar2.rb
Run Code Online (Sandbox Code Playgroud)

这就是Rails的工作方式(所以这就是Rails方式).即,查看Associations名称空间和Associations :: Association类,其中构成Associations名称空间的所有类都该类继承(即Associations :: SingularAssociation).


Ale*_*x D 13

对我来说FooLib::Plugins看起来像一个模块,用作命名空间,各种插件类都保存在其中.FooLib::Plugin看起来像FooLib插件的超类.

FooLib::Plugins::Bar,Bar绝对看起来像一个插件的名称.有了FooLib::Plugin::Bar,我怀疑是否Bar是一个使用的助手类Foo::Plugin,或插件的名称.