Все статьи

Case Converter: зачем нужны разные стили написания

В 1С:Предприятии, самой массовой платформе корпоративной автоматизации в России и СНГ, идентификаторы принято писать не на английском, а прямо на русском — но в PascalCase: ОбработкаДокумента, СправочникНоменклатура. Это не догма, а следствие того, что платформа с самого начала ориентировалась на бухгалтеров и экономистов, а не на программистов, знающих английский, — и camelCase/PascalCase как приём разбивки составного имени на слова оказался языково-независимым: он одинаково хорошо работает что с «UserName», что с «ОбработкаДокумента».

Основные стили

  • camelCase — первое слово с маленькой буквы, каждое следующее с заглавной, без разделителей: userName. Стандарт для переменных и функций в JavaScript, Java, C#.
  • PascalCase — то же самое, но и первое слово с заглавной: UserName. Используется для классов и компонентов почти везде, включая конфигурации 1С.
  • snake_case — слова через нижнее подчёркивание, всё строчными буквами: user_name. Стандарт Python и баз данных (названия колонок).
  • kebab-case — слова через дефис: user-name. Стандарт для URL, CSS-классов и HTML-атрибутов, так как подчёркивание в URL менее привычно.

Почему регистр — это не просто эстетика

Сам по себе регистр букв не влияет на выполнение кода (кроме языков, чувствительных к регистру идентификаторов), но последовательность стиля критична для читаемости и для инструментов: линтеры, автодополнение в IDE и генераторы документации почти всегда ожидают конкретный стиль для конкретного типа сущности — и русскоязычные кодовые базы (та же 1С) следуют этому правилу ничуть не менее строго, просто с кириллическими словами внутри идентификатора.

Зачем нужна конвертация

  • Перенос поля из JSON API (обычно camelCase) в название колонки базы данных (обычно snake_case).
  • Переименование переменных при портировании кода из одного языка в другой с другой конвенцией.
  • Генерация URL-совместимого slug или CSS-класса из текста заголовка, в том числе кириллического.

Неоднозначность с аббревиатурами

Идентификатор вроде userID или XMLParser ставит конвертер перед выбором: считать аббревиатуру одним «словом» или разбить её на отдельные буквы. Разные инструменты решают это по-разному — этот конвертер распознаёт последовательность заглавных букв как отдельное слово (XMLParserXML + Parser), но результат стоит проверять вручную, если название сразу пойдёт в продакшн-код.

Попробовать инструмент