Перейти к содержанию
TextArray

CamelCase, Snake_case, Kebab-Case: руководство по именованию для разработчика

Blog /

Когда вы называете переменные, функции, классы или URL-адреса, выбранный вами формат имеет значение. В разных языках и контекстах используются разные соглашения: JavaScript использует CamelCase, Python предпочитает Snake_case, свойства CSS используют kebab-CASE, а константы конфигурации используют CONSTANT_CASE. Понимание каждого из них и умение конвертировать между ними — это практический навык, который сделает ваш код последовательным и читабельным.

CamelCase: стандарт JavaScript

CamelCase начинается со строчной буквы и делает первую букву каждого последующего слова заглавной, без разделителей. Имена переменных и функций в JavaScript следуют следующему шаблону: getUserById, calculateTotalPrice, handleSubmitClick. Большинство ключей JSON по соглашению также имеют верблюжий регистр.

Название происходит от «горбов», которые создают заглавные буквы. Он компактен, удобочитаем и является фактическим стандартом для JavaScript, TypeScript, Java и C#. Когда вам нужно преобразовать текст в CamelCase — создаете ли вы генератор кода или стандартизируете имена переменных — преобразователь корпуса справляется с этим одной пастой.

Snake_case: Python и базы данных

Snake_case объединяет слова с помощью подчеркивания и сохраняет все буквы в нижнем регистре: get_user_by_id, calculate_total_price, handle_submit_click. Разработчики Python используют это для имен переменных и функций в соответствии с рекомендациями по стилю PEP 8. Имена столбцов и таблиц SQL также часто используют Snake_case, как и переменные среды в большинстве систем.

Snake_case читается даже в виде заглавных букв (DATABASE_PASSWORD, MAX_RETRY_COUNT), поэтому CONSTANT_CASE — змея_case в верхнем регистре — является универсальным соглашением для констант конфигурации и конечных переменных во всех языках.

kebab-case: URL-адреса и CSS

kebab-case объединяет слова через дефисы и использует все строчные буквы: get-user-by-id, calculate-total-price. Вы видите его повсюду в URL-адресах — статьях slugs, страницах продуктов, названиях маршрутов — потому что дефисы удобны для поисковых систем и с меньшей вероятностью будут неправильно интерпретированы парсерами, чем подчеркивания. Имена классов CSS и пользовательские атрибуты HTML также по соглашению используют регистр «кебаб».

Создание URL-безопасных идентификаторов или имен, подобных slug, из простого текста — одно из наиболее практичных применений. Генератор slug преобразует фразы в готовые для URL-адреса строки в стиле кебаб, удаляя при этом знаки препинания и акценты.

PascalCase: классы и типы

PascalCase (или UpperCamelCase) делает первую букву заглавной: GetUserById, CalculateTotalPrice. Это соглашение об именах классов, определениях типов и компонентах в TypeScript, C#, Java и React. Когда вы работаете с объектно-ориентированными языками или компонентными платформами, это то, что вам нужно.

Преобразование между форматами

Переход от одного соглашения к другому требует двух шагов: сначала расколоть идентификатор на отдельные слова, затем воссоединиться их с сепаратором мишеней и кожухом. Именно здесь инструменты упрощают процесс.

Если у вас есть идентификатор CamelCase и вам необходимо понять его части — возможно, переименовать его или сопоставить версию Snake_case — разделенный верблюжий чехол инструмент разбивает его на части: getUserById становится get User By Id. Как только слова будут разделены, преобразователь корпуса можете переформатировать их в любое необходимое вам соглашение. Разработчики также используют эти инструменты при рефакторинге кода за пределами языковых границ или при переводе между спецификациями API и именами внутренних переменных.

Когда использовать каждое соглашение

Правильный выбор зависит от контекста, а не предпочтений. JavaScript и JSON используют CamelCase. Переменные Python, SQL и среды используют Snake_case. URL-адреса и CSS используют кебаб-кебаб. В именах типов и классов используется PascalCase. Константы конфигурации используют CONSTANT_CASE во всех языках. Следование этим соглашениям сделает ваш код мгновенно узнаваемым для всех, кто знаком с этой экосистемой.

Последовательность имеет большее значение, чем конкретное соглашение: если вы смешиваете форматы в одном файле или проекте, читателям придется переключать контекст, и ошибки станут проще. Инструменты для преобразования и разделения идентификаторов помогают вам сохранять единообразие при работе на нескольких языках или при переносе кода между проектами.