Стандартные соглашения об именах файлов в Ruby

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

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

или какая-то другая вариация?

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

Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
52
0
25 966
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

При использовании только Рубин (т.е. не Rails) именование является лишь условием. В Рельсы необходимо (почти) использовать соглашение с использованием подчеркивания.

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

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

Слово из Ruby Gems - использовать символы подчеркивания (также известные как вырезание ящиков или змеи) для имен файлов, а имена Gem: Последовательное именование.

stevenharman 04.08.2011 02:25

Статья, которую вы процитировали для lowercasenounderscore.rb, старая, и я не видел, чтобы кто-то еще заявлял об этом как о соглашении. Подчеркивание почти повсеместно является стандартом.

SFEley 17.05.2012 01:18

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

Не только это, но и подчеркивание является условием для большинства инструментов тестирования, интерфейсов плагинов и т. д. (Например, если у вас есть файл foo.rb и файл спецификации на spec/foo_spec.rb, Autotest запустит последний, когда первый изменится, и многие текстовые редакторы будут иметь ярлыки для переключения между ними.)

SFEley 17.05.2012 01:22

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

Bad
# gem install my_cool_lib
require 'my-cool-lib'

# gem install MyCoolLib
require 'my_cool_lib'
Good
# 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

Gemfile также находится на верхнем уровне при использовании Bundler или Rails.

Ross Attrill 26.09.2013 08:54

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