Стандартные соглашения по именованию файлов в Ruby - PullRequest
47 голосов
/ 21 октября 2008

Для файла, содержащего данный класс SomeCoolClass, какое имя файла будет правильным или стандартным?

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

или какой-то другой вариант?

Я заметил, что в Ruby stdlib используются версии 1, 2 и 3.

Ответы [ 4 ]

43 голосов
/ 21 октября 2008

Только с Ruby (т.е. не Rails), именование является только соглашением. В Rails соглашение об использовании подчеркивания необходимо (почти).

Я думаю, что соглашение # 2 lowercase_and_underscore.rb более распространено и выглядит довольно хорошо, хотя статья Здесь говорит, что lowercasenounderscore.rb - это соглашение Ruby.

Выберите , какое соглашение является более распространенным или какое вам больше нравится. Самое главное, чтобы был последовательным в рамках проекта .

7 голосов
/ 21 октября 2008

Я бы порекомендовал строчные буквы с подчеркиванием (номер 2 в вашем вопросе). Это правда, что эта схема именования является соглашением в Rails и не обязательна в не-Rails проектах. Тем не менее, я все равно придерживался бы соглашения Rails, потому что большинство программистов Ruby, вероятно, используют Ruby исключительно для Rails.

6 голосов
/ 21 октября 2008

Лично я считаю, что дефис как разделитель слов обеспечивает максимальную читаемость и типизируемость в целом, поэтому я рекомендую использовать его там, где это возможно (в некоторых случаях дефис не может использоваться, например в идентификаторах в большинстве языков). Важно помнить, что выбранная вами схема будет иметь отношение к требованию, которое пользователи будут использовать с вашей библиотекой, и вы хотите избегать использования имени другого гема, отличного от имени библиотеки .

Плохой
# 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 голосов
/ 05 марта 2013
my-proj
├── README
├── lib
│   └── some_cool_class.rb
└── test
    └── some_cool_class_test.rb
...