Справка по case: camelCase, kebab-case, PascalCase, snake_case и другие

Vladimir Morulus
2 min readOct 1, 2020

--

Общее правило для всех кейсов — никаких специальных символов и пробелов. Далее по-порядку:

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;
}
}

--

--