Должны ли файлы называться что-то с with-hyphens.js, camelCased.js или как-то еще?
Я не нашел ответа на этот вопрос здесь .
Должны ли файлы называться что-то с with-hyphens.js, camelCased.js или как-то еще?
Я не нашел ответа на этот вопрос здесь .
Ответы:
Одним из возможных соглашений об именах является использование чего-то похожего на схему именования, которую использует jQuery. Это не универсально принято, но это довольно распространено.
product-name.plugin-ver.sion.filetype.js
где пара product-name
+ plugin
также может представлять пространство имен и модуль . version
И filetype
, как правило , по желанию.
filetype
может быть что-то относительно того, как содержимое файла. Часто встречаются:
min
для минимизированных файловcustom
для пользовательских или измененных файловПримеры:
jquery-1.4.2.min.js
jquery.plugin-0.1.js
myapp.invoice.js
Я не знаю каких-либо конкретных соглашений для файлов javascript, поскольку они не являются уникальными в Интернете по сравнению с файлами CSS, HTML-файлами или любым другим типом файлов, подобных этому. Есть несколько «безопасных» вещей, которые вы можете сделать, чтобы уменьшить вероятность случайного столкновения с кроссплатформенной проблемой:
various-scripts.js
, дефис - это безопасный и полезный и часто используемый разделитель.Официального универсального соглашения об именовании файлов JavaScript не существует.
Есть несколько различных вариантов:
scriptName.js
script-name.js
script_name.js
все действительные соглашения об именах, однако я предпочитаю предложенное jQuery соглашение об именах (для плагинов jQuery, хотя оно работает для любого JS)
jquery.pluginname.js
Прелесть этого соглашения об именах в том, что оно явно описывает добавляемое загрязнение пространства имен.
foo.js
адды window.foo
foo.bar.js
адды window.foo.bar
Потому что я пропустил управление версиями: оно должно идти после полного имени, желательно через дефис, с периодами между основной и вспомогательной версиями:
foo-1.2.1.js
foo-1.2.2.js
foo-2.1.24.js
The beauty to this naming convention is that it explicitly describes the global namespace pollution being added.
, никогда не замечал этого
Foo
или myFoo
, вы бы просто назвали файл Foo.js
или, myFoo.js
соответственно?
Вопрос в ссылке, которую вы дали, говорит об именовании переменных JavaScript, а не об именах файлов, поэтому забудьте об этом для контекста, в котором вы задаете свой вопрос.
Что касается имен файлов, это чисто вопрос предпочтений и вкуса. Я предпочитаю называть файлы дефисами, потому что тогда мне не нужно тянуться к клавише Shift, как это происходит при работе с именами файлов camelCase; и потому что мне не нужно беспокоиться о различиях между именами файлов Windows и Linux (имена файлов Windows не чувствительны к регистру, по крайней мере, в XP).
Таким образом, ответ, как и многие другие, «это зависит» или «это зависит от вас».
Единственное правило, которому вы должны следовать, - это быть последовательным в выбранной вами конвенции.
Я обычно предпочитаю дефисы со строчными буквами, но еще не упомянуто то, что иногда приятно, чтобы имя файла точно совпадало с именем отдельного модуля или инстанцируемой функции, содержащейся в нем.
Например, у меня есть модуль раскрытия, объявленный var knockoutUtilityModule = function() {...}
в его собственном файле с именем knockoutUtilityModule.js, хотя объективно я предпочитаю knockout-utility-module.js.
Точно так же, поскольку я использую механизм связывания для объединения сценариев, я занялся определением инстанцируемых функций (шаблонов представления моделей и т. Д.), Каждая из которых находится в отдельном файле в стиле C # для удобства сопровождения. Например, ProductDescriptorViewModel живет сам по себе в ProductDescriptorViewModel.js (я использую прописные буквы для создаваемых функций).
MyPlugin
Класс будет идтиMyPlugin.js
. КомпонентMenuItem
React будет включенMenuItem.js
. Другим разработчикам потребуется / import 'your-cool-module' и использовать несколько символов из него, поэтому назовите егоcool-module.js
. -