Справка по case: camelCase, kebab-case, PascalCase, snake_case и другие
Общее правило для всех кейсов — никаких специальных символов и пробелов. Далее по-порядку:
camelCase
Первая буква всегда маленькая, далее каждое слово начинается с большой буквы.
nodePackageManager
Преимущества:
- Легко выделяется двойным кликом;
- Компактнее чем kebab-case, snake-case;
- Практически универсален.
Недостатки:
- Может вызывать проблемы в системах нечувствительных к регистру;
Применяется в именах файлов, атрибутах и именах переменных/методов/свойств, uri, в языках разметки.
Лучший для: имен переменных, свойств, модулей и файлов с ними.
PascalCase
Тоже что camelCase, только первая буква всегда заглавная.
NodePackageManager
Преимущества все те же, что у camelCase, а так же:
- Позволяет акцентировать внимание;
Применяется для имен классов, методов (в некоторых языках, таких как c#), enum, имен файлов содержащих классы или компоненты. Часто используется вместе с camelCase, что бы визуально разделить классы от экземпляров, свойства от методов. Так же применим для наименования синглтонов.
Лучший для: имен классов, enum, синглтонов и файлов с ними.
kebab-case
Все буквы маленькие, слова разделяются дефисом.
node-package-manager
Преимущества:
- Подходит для систем невосприимчивых к регистру и пробелам;
- Легко парсится;
- Немного читабельней, чем camelCase и PascalCase.
Недостатки:
- Не выделяется двойным кликом;
- Большенство интерпритаторов не воспринимают как единой слово, поэтому не годится для имен переменных/функций/свойств/классов.
Применяется в url, в именах директорий, в именах свойств JSON, в именах атрибутов HTML.
Лучший для: имен директорий, URI, имен свойств JSON.
snake_case
Все буквы маленькие, слова разделены нижним подчеркиванием
node_package_manager
Приемущества:
- Выделяется двойным кликом;
- Подходит для систем невосприимчивых к регистру и пробелам;
- Легко парсится;
- Подходит для имен переменных.
- Универсален;
- Самый читабельный для длинных имен;
- Самый древний из случаев.
Недостатки:
- Менее эстетичный чем остальные;
Применим практически везде, но ввиду того, что в большом количестве раздражает взгляд, на практике используется только для ключей и идентификаторов, или если есть системные ограничения на используемые символы.
Лучший для: ключей, идентификаторов, архаичных систем.
SCREAMING_SNAKE_CASE
Все буквы большие, слова разделяются нижних подчеркиванием.
NODE_PACKAGE_MANAGER
Приемущества все те же, что у snake_case, а так же:
- Позволяет акцентировать на себе внимание;
- Не будет путанницы между прописными буквами l и заглавной I.
Недостатки все те же, что у snake_case, а так же:
- В большом количестве еще больше раздражает взгляд;
- Визуально занимает больше пространства на экране монитора;
Применяется в именах констант и переменных окружения.
Лучший для: имен констрант, переменных окружения.
Train-Case
Каждое слово начинается с заглавной буквой, слова разделяются дефисом.
Node-Package-Manager
Приемущества те же, что у kebab-case, а так же:
- Позволяет акцентировать внимание.
Недостатки:
- Не подходит для систем невосприимчивых к регистру;
Применяется в загаловках запросов. Других кейсов применения не встречал.
Лучший для: заголовки запросов;
Пример
/** Node-Package-Manager: node-package-manager/NodePackageManager.cs */
class NodePackageManager {
const string NODE_PACKAGE_MANAGER = "node_package_manager";
public NodePackageManager() {
var nodePackageManager = NODE_PACKAGE_MANAGER;
}
}