Вопрос

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

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

# 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'

К сожалению, небольшое количество библиотек нарушает это простое правило юзабилити. Не будь одной из тех библиотек. :)

my-proj
├── README
├── lib
│   └── some_cool_class.rb
└── test
    └── some_cool_class_test.rb
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top