Соглашения об именах в программировании (naming conventions) необходимы, чтобы писать понятный, читаемый и поддерживаемый код. Также это способствует сотрудничеству разработчиков и уменьшает недопонимание между коллегами, работающими над одним проектом. В статье расскажем, зачем нужны нотации в программировании и подробно разберем самые популярные из них.
- Для чего нужны правила именования в программировании?
- Нотации в программировании
- Верблюжья нотация (сamel case, camelCase)
- Нотация Паскаля (Pascal case, PascalCase)
- Змеиная нотация (snake case, snake-case)
- Шашлычная нотация (kebab case, kebab-case)
- Плоская нотация (flat case, flatcase)
- Венгерская нотация (Hungarian notation)
- Кричащая змеиная нотация (Screaming Snake Case)
- Нотации для использования в конкретных случаях
Для чего нужны правила именования в программировании?
Соглашения об именах связаны с тем, как переменные, методы и классы именуются в коде. Стандарты кодирования — это набор правил и рекомендаций, которые определяют, как структурировать и форматировать код.
Концепция состоит в том, чтобы следовать единому шаблону именования всех файлов. Преимущество очевидно: если все знают, как что называется, файл будет легко найти. Хорошо продуманная система именования переменных, функций и других элементов в базе кода похожа на дорожную карту. Она помогает разработчикам пройти через сложный ландшафт и быстрее разобраться в коде.
У нотаций есть свои преимущества.
Повышение читаемости кода. Представьте себе библиотеку без помеченных разделов или книгу без оглавления. Найти нужную информацию было бы непросто. Четкие и осмысленные имена в базе кода — это идентификаторы. Они облегчают программистам понимание назначения и функциональности каждого компонента. Поначалу нотации могут выглядеть сложно, но если разобраться с их основой, процесс кодирования станет проще.
Сотрудничество. Многие проекты в программировании часто предполагают сотрудничество нескольких разработчиков. Нотации помогают работать вместе за счет создания общего естественного языка. Когда каждый участник придерживается одних и тех же стандартов, код становится удобнее в сопровождении. Это сокращает время обучения для новых членов команды и сводит к минимуму вероятность ошибок, вызванных неправильной интерпретацией переменных. Соглашения об именах должны быть частью культуры каждой команды, стандартом, а не опцией.
Работа с ошибками. Когда в базе кода возникают проблемы, способность быстро выявить и устранить ошибку первостепенна. Четкие имена упрощают процесс, позволяя разработчикам быстро определить источник ошибки. Понятные нотации превращают отладку из утомительного поиска в целенаправленное исследование. Так экономятся и время, и ресурсы.
Нотации в программировании
На протяжении многих лет разработчики использовали разные типы регистров для именования объектов в своем коде. Рассмотрим самые популярные из них.
Верблюжья нотация (сamel case, camelCase)
Верблюжья нотация в программировании (camelCase) часто используется для именования переменных, функций и методов в таких языках программирования, как JavaScript, Java, Python, C#. Слова здесь соединяются между собой, а каждое слово, кроме первого, пишется с заглавной буквы: firstNumber, itemsCounter.
В программировании этот тип нотации чаще всего используют для именования переменных, но иногда — и для функций.
Пример кода:
Method definition (Python) :
def calculateTotalAmount(paymentList):
totalAmount = 0
for payment in paymentList:
totalAmount += payment
return totalAmount
Нотация Паскаля (Pascal case, PascalCase)
PascalCase отличается от CamelCase одной деталью — все слова начинаются с заглавных букв. Вот несколько примеров использования регистра Pascal:
NumberOfDonuts = 34
FavePhrase = "Hello World"
Пример кода:
Class definition (C#):
public class BankAccount
{
private string AccountNumber;
private decimal CurrentBalance;
public string AccountNumber
{
get { return AccountNumber; }
set { AccountNumber = value; }
}
public decimal CurrentBalance
{
get { return CurrentBalance; }
set { CurrentBalance = value; }
}
}
Змеиная нотация (snake case, snake-case)
Змеиная нотация отделяет каждое слово символом подчеркивания (_). При ее использовании все буквы должны быть строчными. Snake case чаще всего применяют для объявления констант, имен полей базы данных и именования переменных. Этот вид можно использовать и для улучшения читаемости кода в Python, Ruby и SQL.
Пример кода:
Function definition (Ruby):
def calculate_total_amount(payment_list)
total_amount = 0
payment_list.each do |payment|
total_amount += payment
end
total_amount
end
Такое именование распространено в языке Python. Есть и другой вариант его написания: ELT_NAME. Вариант ALL_CAPS часто используется для именования констант в PHP и Java.
Шашлычная нотация (kebab case, kebab-case)
Между словами в этой нотации используются дефисы (-) и строчные буквы. Kebab-case часто используется в атрибутах HTML, именах файлов и URL-адресах. Но именование переменных или функций с ее помощью не так распространено в программировании.
Пример кода:
CSS class (CSS):
.header-title {
font-size: 20px;
color: #333;
}
Плоская нотация (flat case, flatcase)
В плоской нотации в переменной просто объединяются все слова и буквы. Между ними не остается пробелов. Все символы во flat case пишутся строчными буквами. Пример: Eg: firstname, lastname
Это соглашение применяют не так часто. Оно влияет на читаемость, особенно при объединении нескольких слов.
Венгерская нотация (Hungarian notation)
Венгерская нотация в программировании добавляет к именам переменных одну или несколько строчных букв, обозначающих тип данных. Сейчас она менее популярна, но раньше широко использовалась в разных языках программирования.
К имени переменной добавляют информацию о ее назначении или типе данных: strUserName (str в начале имени переменной означает, что она должна хранить данные строкового типа). Еще один пример: iAge (i в начале предполагает, что переменная должна содержать целые числа).
Кричащая змеиная нотация (Screaming Snake Case)
SCREAMING_SNAKE_CASE — это соглашение об именах переменных, в котором каждое слово пишется заглавными буквами и разделяется подчеркиванием. Стиль также известен как MACRO_CASE или CONSTANT_CASE.
Пример кода:
Constant declaration (JavaScript):
const MAX_ATTEMPTS = 5;
const PI_VALUE = 3.14159;
const ERROR_MESSAGE = "An error occurred."
Прописные буквы и символы подчеркивания (_) используются в SCREAMING_SNAKE_CASE для разделения слов. Нотация часто применяется для представления констант и глобальных значений, которые не следует изменять в Python, C++ и сценариях оболочки. SCREAMING_SNAKE_CASE подойдет для повышения читаемости кода и обеспечения согласованности. Этот стиль подчеркивает, что определенные значения следует рассматривать как неизменяемые.
Нотации для использования в конкретных случаях
Соглашения об именах подходят для переменных, функций, классов. Чтобы работать с нотациями, важно знать правила их применения.
Переменные. Это имена или метки значений и объектов. Общие правила для них — они должны быть существительными: пользователь, специалист, результат, игрок. Чаще всего программисты применяют «верблюда» или «змею», в зависимости от языка программирования.
Константы. В некоторых языках программирования константы пишутся полностью с заглавной буквы и со змеиной нотацией. К ним относятся JavaScript, Python и Java. Пример константы: SOME_SPECIAL_VALUE.
Функции. Они необходимы для совершения действий. Поэтому это должны быть глаголы. Обычно функции используют snake case или camel case. Пример функции: sendRequest. Функции, возвращающие логическое значение, принято начинать с предиката. Это похоже на переменные, содержащие логические значения. Пример имени функции, возвращающей логическое значение: isFormatted.
Классы. Это единицы кода, содержащие методы и атрибуты. Правила для классов таковы: чаще всего они используют Pascal case, должны быть существительными (или именными фразами). Например, Player или Specialist.