Почему соглашения об именовании важны
Как называть переменные, функции и классы в коде — это не просто личное предпочтение. Единые соглашения об именовании делают код читаемым, командную работу слаженной, а стиль последовательным. В разных языках разные соглашения, их смешение выглядит непрофессионально.
Частые соглашения об именовании
camelCase
Первое слово со строчной буквы, последующие слова с заглавной:
firstName
lastName
getUserInfo
isLoggedIn
Используется в: переменных и функциях JavaScript/TypeScript, методах и переменных Java, методах и переменных C#.
PascalCase / UpperCamelCase
Каждое слово с заглавной буквы:
FirstName
UserService
HomeController
Используется в: классах и интерфейсах JavaScript/TypeScript, классах Java, классах и методах C#, компонентах React.
snake_case
Все слова в нижнем регистре, разделены подчеркиванием:
first_name
last_name
get_user_info
Используется в: переменных и функциях Python, переменных и методах Ruby, именах полей баз данных, переменных PHP.
UPPER_SNAKE_CASE / SCREAMING_SNAKE_CASE
Все в верхнем регистре, разделено подчеркиванием:
MAX_RETRY
DEFAULT_TIMEOUT
API_BASE_URL
Используется в: константах, параметрах конфигурации, значениях перечислений. Почти все языки используют это соглашение для именования констант.
kebab-case
Все в нижнем регистре, разделено дефисом:
first-name
user-profile
api-key
Используется в: путях URL, именах классов HTML/CSS, именах файлов, ключах файлов конфигурации.
dot.case
Разделение точкой:
user.name
config.timeout
Используется в: иерархических ключах файлов конфигурации, пространствах имен.
Краткая справка по языкам
JavaScript / TypeScript
- Переменные, функции: camelCase (getUserInfo)
- Классы, интерфейсы, типы: PascalCase (UserService)
- Константы: UPPER_SNAKE_CASE (MAX_RETRY)
- Приватные члены: префикс подчеркивание + camelCase (_privateVar)
Python
- Переменные, функции: snake_case (get_user_info)
- Классы: PascalCase (UserService)
- Константы: UPPER_SNAKE_CASE (MAX_RETRY)
- Приватные члены: префикс подчеркивание + snake_case (_private_var)
Java
- Переменные, методы: camelCase (getUserInfo)
- Классы: PascalCase (UserService)
- Константы: UPPER_SNAKE_CASE (MAX_RETRY)
- Имена пакетов: все строчные (com.example.service)
CSS / HTML
- Имена классов: kebab-case (user-profile)
- ID: kebab-case или camelCase (решает команда)
Базы данных
- Имена таблиц, полей: snake_case (user_name)
- Некоторые используют camelCase, зависит от соглашений команды
URL
- Пути: kebab-case (/user-profile/settings)
- Параметры запроса: camelCase или snake_case (?userId=123 или ?user_id=123)
Правила преобразования
camelCase → snake_case
- Найдите заглавные буквы
- Добавьте подчеркивание перед заглавными буквами
- Преобразуйте все в нижний регистр
Пример: getUserInfo → get_user_info
snake_case → camelCase
- Найдите подчеркивания
- Преобразуйте букву после подчеркивания в заглавную
- Удалите подчеркивания
Пример: get_user_info → getUserInfo
PascalCase → camelCase
Преобразуйте первую букву в строчную, остальное без изменений.
Пример: UserService → userService
camelCase → PascalCase
Преобразуйте первую букву в заглавную, остальное без изменений.
Пример: userService → UserService
kebab-case → camelCase
- Найдите дефисы
- Преобразуйте букву после дефиса в заглавную
- Удалите дефисы
Пример: user-profile → userProfile
Частые ошибки
Смешение соглашений
Использование camelCase и snake_case в одном проекте выглядит беспорядочно. Выберите одно соглашение и придерживайтесь его.
Обработка аббревиатур
Должны ли аббревиатуры быть полностью в верхнем регистре?
- URL или Url? userId или userID?
- Соглашение: двухбуквенные аббревиатуры в верхнем регистре (ID, URL), аббревиатуры из трех и более букв с заглавной первой (Http, Xml)
- Команда должна стандартизировать, главное — последовательность во всем проекте
Акронимы
Как писать HTTP, XML, URL в camelCase?
- Рекомендуется: httpUrl, xmlParser (как обычные слова)
- Некоторые используют: HTTPUrl, XMLParser (сохраняют аббревиатуру в верхнем регистре)
- Команда должна стандартизировать
Обработка чисел
user2name или user2Name?
- camelCase: user2Name (заглавная первая буква после числа)
- snake_case: user2_name
Использование DocsAll для преобразования регистра
Инструмент преобразования регистра поддерживает:
- Все в верхнем регистре / все в нижнем регистре
- Первая буква заглавная
- Взаимное преобразование camelCase / PascalCase / snake_case / kebab-case
- Заглавная первая буква в предложении
Операция:
- Вставьте текст
- Выберите тип преобразования
- Скопируйте результат
Преобразование в браузере, текст не отправляется.
Заключение
Запомните главное о соглашениях об именовании: переменные и функции используют camelCase или snake_case (в зависимости от языка), классы используют PascalCase, константы используют UPPER_SNAKE_CASE, URL используют kebab-case. Последовательность команды важнее всего. Инструмент преобразования регистра DocsAll работает в браузере, данные не передаются наружу.