【问题标题】:Standard File Naming Conventions in RubyRuby 中的标准文件命名约定
【发布时间】:2008-10-21 09:44:00
【问题描述】:

对于包含给定类 SomeCoolClass 的文件,正确或标准的文件名是什么?

1.somecoolclass.rb 2. some_cool_class.rb 3. some-cool-class.rb 4.SomeCoolClass.rb

或其他一些变化?

我注意到在 Ruby 标准库中,使用了版本 1、2 和 3。

【问题讨论】:

    标签: ruby file naming-conventions conventions


    【解决方案1】:

    只有Ruby(即不是Rails),命名只是一种约定。在Rails 中,使用下划线的convention 是必要的(几乎)。

    我认为约定 #2 lowercase_and_underscore.rb 更常见并且看起来相当不错,尽管一篇文章 Herelowercasenounderscore.rb 是 Ruby 约定。

    选择哪个惯例更常见,或者你更喜欢哪个惯例。最重要的是在项目中保持一致

    【讨论】:

    • Ruby Gems 中的单词是使用下划线(也称为 box-cutting 或蛇形)作为文件名,而 Gem 名称:Consistent Naming
    • 您为lowercasenounderscore.rb 引用的那篇文章已经过时了,我还没有看到其他人声称这是惯例。下划线几乎是普遍的标准。
    【解决方案2】:

    我个人认为连字符作为单词分隔符通常可以最大程度地提高可读性和可打字性,因此我建议在可能的情况下(在某些情况下,不能使用连字符,例如在大多数语言的标识符中)。要记住的一件重要事情是,您选择的方案将与用户将与您的库一起使用的 require 语句有关,并且您希望避免使用与库名称不同的 gem 名称

    坏的
    # gem install my_cool_lib
    require 'my-cool-lib'
    
    # gem install MyCoolLib
    require 'my_cool_lib'
    
    好的
    # gem install my_cool_lib
    require 'my_cool_lib'
    
    # gem install my-cool-lib
    require 'my-cool-lib'
    

    不幸的是,少数库违反了这个简单的可用性规则。不要成为那些图书馆之一。 :)

    【讨论】:

      【解决方案3】:

      我会推荐带下划线的小写字符(您的问题中的数字 2)。确实,这种命名方案是 Rails 中的约定,在非 Rails 项目中不是必需的。但是,我仍然会坚持 Rails 约定,因为大多数 Ruby 程序员可能都专门为 Rails 使用 Ruby。

      【讨论】:

      • 不仅如此,下划线也是大多数测试工具、插件接口等的惯例。 (例如,如果您有一个文件 foo.rb 和一个位于 spec/foo_spec.rb 的规范文件,当前者更改时 Autotest 将运行后者,并且许多文本编辑器将有快捷方式在两者之间跳转。)
      【解决方案4】:
      my-proj
      ├── README
      ├── lib
      │   └── some_cool_class.rb
      └── test
          └── some_cool_class_test.rb
      

      【讨论】:

      • 如果使用 Bundler 或 Rails,Gemfile 也位于顶层
      猜你喜欢
      • 1970-01-01
      • 2012-04-22
      • 2012-04-27
      • 2013-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-09
      相关资源
      最近更新 更多