Чи повинні файли називатися щось з-hyphens.js, camelCased.js чи щось інше?
Я не знайшов відповідь на це питання тут .
Чи повинні файли називатися щось з-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
Реагувати компонент буде йтиMenuItem.js
. Інші розробники вимагатимуть / імпортуватимуть 'ваш-cool-модуль' та використовуватимуть з нього кілька символів, тому назвіть йогоcool-module.js
. -