Стандартные соглашения по именованию файлов в Ruby
-
03-07-2019 - |
Вопрос
Для файла, содержащего данный класс 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