Конвертер регистров берёт фразу или идентификатор и переписывает его во всех ходовых стилях именования: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case и так далее. Разработчики тянутся к нему постоянно: при рефакторинге имён переменных, генерации названий колонок в БД, оформлении полей API под чужой style guide или превращении пользовательского текста в URL-slug.
У каждой экосистемы свои привычки. JavaScript и Java любят camelCase; Python и Ruby - snake_case; CSS-классы и URL пишутся в kebab-case; переменные окружения и константы - в CONSTANT_CASE. Конвертер позволяет переключить фразу в нужный стиль, не пересобирая её по символу в голове.
Самое сложное здесь - не переписывание, а *токенизация*. Конвертер должен сначала корректно разбить смешанный ввод вроде XMLHttpRequest, iOSDevice или read_HTML5Tags на слова, а уже потом склеить их в нужном стиле. Хороший токенизатор аккуратно разруливает аббревиатуры (XML, iOS) и цифры.
Что вы освоите по ходу работы с регистрами
У каждого языкового сообщества свой любимый стиль. Подстраивайтесь под конвенцию той кодовой базы, в которой пишете.
Токенизация делит смешанный ввод по заглавным буквам, разделителям (_ - .) и границам цифр - и только потом собирает обратно.
Аббревиатуры делают преобразование неоднозначным: что должно получиться из XMLParser - xmlParser или xMLParser? Выберите конвенцию для своего кода и придерживайтесь её.
Как преобразовать регистр пошагово
1
Вставьте текст
Кидайте одну фразу, идентификатор или целый список. Смешанный ввод - camelCase, snake_case, пробелы - обрабатывается без проблем.
2
Сразу видите все варианты
Конвертер показывает ваш ввод в 10+ стилях. Выбирайте тот, что используется в вашей кодовой базе.
3
Подкрутите крайние случаи
Переключите обработку аббревиатур, цифр и спецсимволов, если в вашем style guide на этот счёт есть отдельные правила.
4
Кликните, чтобы скопировать
Клик по любому варианту копирует его в буфер обмена. Удобно при рефакторинге между файлами или заполнении OpenAPI-спецификаций.
Стили именования: краткий справочник
Как одна и та же фраза выглядит в самых распространённых конвенциях.
Стиль
Пример
Где применяется
camelCase
userName
Переменные в JavaScript, методы в Java
PascalCase
UserName
Имена классов в большинстве языков, React-компоненты
Одни и те же слова, пять стилей. Берите тот, что соответствует файлу, в котором вы сейчас работаете.
Перенести JS-переменную в Python
JavaScript
const accessTokenExpiresAt =...;
Python
access_token_expires_at =...
Большинство команд держит одно каноничное имя в доменной модели и переводит его на границе между языками или между слоями API.
Сделать slug заголовка для URL
Заголовок
10 Best Practices for REST APIs
Slug
10-best-practices-for-rest-apis
Slug - это kebab-case в нижнем регистре с безопасным набором символов. Такие строки одинаково годятся и для сегментов URL, и для имён CSS-классов.
Типичные ошибки при работе с регистрами
Смешивать стили в одном файле или слое (userName и user_name в одном модуле). Выберите один стиль и следите за ним линтером.
Непоследовательно оформлять аббревиатуры (XmlParser против XMLParser). Договоритесь один раз для всей кодовой базы и больше не отступайте.
Забывать, что идентификаторы в БД иногда нормализуются по регистру: userName и username - это одна и та же колонка в PostgreSQL, но разные в MySQL.
FAQ по конвертеру регистров
Что такое camelCase?
В camelCase каждое слово, кроме первого, начинается с заглавной буквы, а сами слова склеиваются без разделителей (accessTokenExpiresAt). Это основной стиль для переменных и методов в JavaScript и Java.
Что такое snake_case?
В snake_case все слова пишутся строчными буквами и соединяются через подчёркивание (access_token_expires_at). Это идиоматичный стиль для Python, Ruby и большинства имён колонок в реляционных БД.
В чём разница между PascalCase и camelCase?
Оба стиля начинают каждое следующее слово с заглавной буквы. Разница - в первой букве: в PascalCase она заглавная (UserProfile), в camelCase - строчная (userProfile). PascalCase в большинстве экосистем зарезервирован под имена классов и React-компоненты.
Как превратить текст в URL-безопасный slug?
Перевести в нижний регистр, заменить пробелы и подчёркивания на дефисы, убрать диакритику (é → e) и выкинуть всё, что не является буквой, цифрой или дефисом. У большинства конвертеров есть отдельный режим slugify, который делает это за один шаг.
Что выбрать в проекте - camelCase или snake_case?
Ориентируйтесь на язык: camelCase для JavaScript, Java, Swift; snake_case для Python, Ruby, Rust. Внутри одной кодовой базы важнее не сам выбор, а последовательность - линтер (ESLint, Pylint, Rubocop) поможет за этим следить.