Код
#статьи

Нотации в программировании: верблюд, змея, шашлык и другие

Пять способов соединить слова в одно длинное название — с вариациями и пояснениями.

Анастасия Телесницкая для Skillbox Media

Часто для хорошего имени переменной или метода программистам не хватает одного слова. Например, название метода calculate, конечно, намекает на то, что в нём что-то вычисляется, но что конкретно — непонятно, нужны ещё слова.

Проблема с языками программирования в том, что пробелы в названиях там недопустимы — нельзя назвать метод calculate elephant weight. Поэтому появились многочисленные варианты соединения слов с помощью изменения регистра букв или дописывания символов-разделителей.

Соглашения об именовании переменных, констант и других идентификаторов в программном коде называют нотациями.

Расскажем, какие нотации существуют и для чего они используются.

О чём пойдёт речь:

Верблюжья нотация (сamel case, camelCase)

Изображение: Rvector / Shutterstock / Skillbox Media

Первое слово пишется со строчной буквы, следующие — с заглавной, разделителей между составными частями нет. Торчащие посреди итогового названия заглавные буквы напомнили кому-то горбы верблюда — так возникло название нотации.

Пример

calculateElephantWeight

Используется во многих языках программирования для именования переменных, функций, методов — например, в Java, JavaScript, PHP. В языке Go в camelCase объявляют внутренние поля и методы.

Язык Go вообще чувствителен к именам: от того, с какой буквы, строчной или заглавной, начинается имя переменной, зависит её область видимости — то, какие другие компоненты приложения смогут к этой переменной обратиться.

Для внутренних переменных подходит camelCase, а для публичных (экспортируемых) обязательно делать первую букву названия заглавной, то есть именовать в стиле PascalCase.

Нотация Паскаля (Pascal case, PascalCase)

Скриншот: winworldpc.com

Тот же camelCase, но все слова, даже первое, начинаются с заглавной буквы.

Пример

CalculateElephantWeight

В таком стиле часто именуют классы (в Java, Python, JavaScript), а в программной платформе .NET — ещё и переменные.

Стиль так называется вовсе не в честь Блеза Паскаля. Pascal case стал известным благодаря одному почти забытому языку Паскаль — в нём так именовались переменные, процедуры и функции.

А вот язык Паскаль, кстати, назван Никлаусом Виртом, его создателем, как раз в честь великого француза.

Иногда Pascal case называют upper camel case или, наоборот, camel case называют low Pascal case.

В XIX веке программирования ещё не было, зато уже были химия и химики. Один из них, некто Берцелиус, предложил в формулах веществ называть химические элементы одной или двумя буквами, а итог записывать в одно слово без пробелов. Причём первые буквы составляющих должны быть заглавными.

Благодаря этому прекрасному человеку мы до сих пор записываем формулу поваренной соли в виде NaCl, а не целиком Sodium Chloride или менее читабельно — NA CL.

Змеиная нотация (snake case, snake-case)

Изображение: Rvector / Shutterstock / Skillbox Media

Слова разделяются символами подчёркивания — они как бы ползут по строке, в результате получается длииинное, как змея, название.

Пример

calculate_elephant_weight

Используется, например, в языках Python и Rust для имён переменных и функций.

Если в предыдущем примере заменить все буквы на заглавные, то получится SCREAMING_SNAKE_CASE (кричащая змеиная нотация).

Эту вариацию чаще всего применяют для определения констант — в тех же Python и Rust, Java, PHP и многих других.

Кричащей её назвали, потому что в интернет-переписке переход на капс часто означает повышение градуса беседы и даже крик.

Исследование Бониты Шариф и её коллег по Кентскому университету показало, что имена, разделённые подчёркиваниями, быстрее распознаются. Чтобы это доказать, учёные записывали движения глаз участников эксперимента, пока те читали названия в разных нотациях.

Шашлычная нотация (kebab case, kebab-case)

Изображение: Rvector / Shutterstock / Skillbox Media

В этой нотации слова разделяют символом дефиса. При некоторой доле фантазии можно представить, что слова при этом как бы насаживают на шампур — вот и получается шашлык (kebab).

Пример

calculate-elephant-weight

Примеры использования мы каждый день видим в URL-адресах, ещё kebab-имена дают CSS-стилям и HTML-тегам. В стайлгайде для Angular (фреймворк для веб-разработки) в kebab-нотации рекомендуют называть файлы компонентов, сервисов и других элементов приложения.

Существует kebab-case со всеми заглавными буквами — это SCREAMING-KEBAB-CASE (кричащая шашлычная нотация). Второе название такого стиля — COBOL_CASE, потому что в нём записывают все названия в языке COBOL. Это старый, но очень живучий язык.

Проблема с этой нотацией в том, что знак дефиса можно интерпретировать как минус. Так что, если поставить этот разделитель не там, можно получить весёлые и странные баги.

Плоская нотация (flat case, flatcase)

Чтобы получить наименование в этом стиле, нужно просто записать слова рядом без пробелов, все буквы каждого слова должны быть строчными.

Пример

calculateelephantweight

Переменные, классы и другие элементы программ обычно так не называют — их будет сложно разделить на слова при чтении, особенно если слов больше двух, как в примере. Зато плоская нотация встречается в именах пакетов. В Java, например, можно создать пакет com.example.flatcase.mypackage.

Но чаще всего такого рода длинные надписи мы видим в соцсетях — #этожеобычнаяпрактикадлятегов :)

Как выбрать нотацию

Лучшей нотации на все случаи жизни не существует. Для разных языков программирования есть разные соглашения о наименованиях — это свод правил с рекомендациями, какие имена стоит выбирать для разных элементов программы (переменных, классов, методов и тому подобного). Например, здесь такого рода соглашения для Python, а здесь — для Java.

Обычно разработчики придерживаются этих общепринятых рекомендаций, но никто не запрещает IT-компаниям устанавливать свои правила, если они не противоречат синтаксису языка. В таком случае лучше соблюдать местные соглашения — если, конечно, вы хотите задержаться в этой компании :-)

Мы на наших курсах не своевольничаем — учим называть переменные по всем канонам языка: будь то Java, C#, популярный сейчас R или другие из нашего каталога курсов. Бонусом к правилам наименования — навыки программирования на выбранном языке, а потом и помощь в трудоустройстве.


Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована