Стили именования: camelCase, snake_case, kebab-case
Тема дорожной карты · Английский для IT
🔊 Словарь терминов с произношением →
Стили именования — это соглашения о том, как соединять слова в идентификаторе, и у каждого есть общепринятое английское название, которое нужно знать, чтобы понимать style guide и обсуждать код. camelCase — первое слово строчными, каждое следующее с заглавной: userName; название от «горбов верблюда». PascalCase (или UpperCamelCase) — все слова с заглавной: UserName, стандарт для классов и типов. snake_case — строчные через подчёркивание: user_name, стандарт Python и SQL. SCREAMING_SNAKE_CASE (CONSTANT_CASE, UPPER_SNAKE_CASE) — заглавные через подчёркивание: MAX_RETRIES, для констант и переменных окружения. kebab-case (dash-case, lisp-case) — строчные через дефис: user-name, стандарт для CSS-классов, URL, имён Kubernetes-ресурсов и опций CLI. Реже встречаются Train-Case (User-Name, заголовки HTTP), dot.case (user.name, ключи конфигов) и flatcase (username, пакеты Python).
Как произносится
Camel /ˈkæməl/ («кэмел», ударение на первый слог), Pascal /pæˈskæl/ (ударение на второй слог, как у французского имени), snake /sneɪk/, kebab /kɪˈbæb/ в британском и /kəˈbɑːb/ в американском варианте (ударение на второй слог, не «кЕбаб»), screaming /ˈskriːmɪŋ/, case /keɪs/ в значении «регистр»; отсюда же uppercase /ˈʌpərkeɪs/, lowercase /ˈloʊərkeɪs/, capitalize /ˈkæpɪtəlaɪz/ («сделать первую букву заглавной»), case-sensitive /ˌkeɪs ˈsɛnsɪtɪv/ («чувствительный к регистру»).
Как употребляется
Как о стилях говорят на ревью и в документации:
- Use camelCase for variables and PascalCase for components. — Переменные в camelCase, компоненты в PascalCase.
- Constants should be SCREAMING_SNAKE_CASE. — Константы заглавными через подчёркивание.
- Kubernetes resource names must be kebab-case. — Имена ресурсов только через дефис.
- Go uses MixedCaps, not underscores. — В Go принят MixedCaps (так в Go называют camelCase и PascalCase), без подчёркиваний.
- Python's PEP 8 wants snake_case for functions. — PEP 8 требует snake_case для функций.
- Is the header case-insensitive? — Заголовок нечувствителен к регистру?
Диктовка идентификатора: getUserById — get user by id, camel case или по буквам с указанием регистра: lowercase g-e-t, capital U-s-e-r, capital B-y, capital I-d. Второй вариант длиннее, но исключает ошибки.
Ловушки
Первая ловушка — русские кальки: «верблюжий регистр» и «змеиный регистр» встречаются в переводах, но на ревью звучат странно; используйте английские названия как есть. Вторая — путать capitalize и uppercase: capitalize делает заглавной только первую букву (User), uppercase — все (USER). Третья — говорить big letters и small letters: носители скажут uppercase и lowercase, а capital letter только про одну заглавную. Четвёртая — считать, что стиль это вкусовщина: в каждой экосистеме он закреплён линтером, и предложение переименовать user_id в userId в Python-проекте вызовет вопросы к автору. Пятая — дефис и подчёркивание на слух похожи; при диктовке говорите hyphen или dash и underscore явно.