Skip to content

PascalCase vs camelCase vs kebab case vs snake_case

koplenov edited this page Dec 26, 2022 · 4 revisions

PascalCase

  • Традиционно используются для имён классов.
  • Требуется много нажатий шифта вовремя.
  • СлипшиесяСловаТрудноЧитать.
  • Проблемы с аббревиатурами: XMLHttpRequest, RequestExMPCCShowPartyMembersInfo
  • Одноимённые имена файлов могут вызвать проблемы не чувствительных к регистру файловых системах.
  • Имеет проблемы с наложение стилей в CSS (в зависимости от типа элемента и типа селектора стиль может не примениться).

camelCase

  • Традиционно используются в именах переменных и полей.
  • Требуется много нажатий шифта вовремя.
  • слипшиесяСловаТрудноЧитать.
  • Проблемы с аббревиатурами: mxBADownload
  • Имеет проблемы с наложение стилей в CSS (в зависимости от типа элемента и типа селектора стиль может не примениться).

kebab-case

  • Традиционно используются для имён в html, css, а также в именах файлов.
  • Редакторы не считают эти имена единым именем (выделение даблкликом, ctrl+стрелка и тп).
  • Не допустимо в большинстве языков программирования.
  • Имя получается на несколько символов длиннее.

snake_case

  • Традиционно используются для имён в "олдскульных" языках (C, C++, Rust, Erlang, OCaml) и языках с упором на читаемость (Ruby, Python).
  • Требуется_много_нажатий_шифта
  • Имя получается на несколько символов длиннее.

Смешение стилей

  • Разное именование одной сущности в разных местах - уже проблема.
  • Тут и там необходимы конвертации между стилями написания.
  • Не везде возможна автоконвертация. Например в TypeScript на уровне типов такое невозможно.
  • Поиск всех вхождений одного имени в проекте приходится повторять для каждой формы написания.