Нотации в программировании: правила именования

Нотации в программировании: правила именования

Одни разработчики используют дефисы вместо пробелов, другие — пишут весь код слитно. Какой-то код написан с использованием заглавных буква, а какой-то — полностью строчными. Почему так? И от чего это зависит?

Нотация — это способ записи элементов кода. Она помогает программистам создавать более структурированный код, который легче прочитать и понять другим разработчикам.

Для чего нужны правила именования в программировании?

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

Идентификаторы должны быть содержательны. Представьте, что вам нужно создать переменную, в которую будет записываться фамилия. Для определения элемента недостаточно одного слова, так как по-английски фамилия — это «Last Name». Использовать только «Name» нельзя, так как это будет искажать смысл. И тут возникает проблема — мы не можем использовать пробелы в названиях. Пробел воспринимается компилятором или интерпретатором как разделитель между различными частями кода, что приводит к ошибкам. А нотации — это способ написания идентификаторов таким образом, чтобы код воспроизводился без ошибок.

Существует несколько видов нотаций. Каждый разработчик выбирает свой способ замены пробелов в идентификаторе. Выбор обуславливается:

  • Спецификой проекта. Если над проектом работает команда разработчиков, они договариваются о выборе нотации до начала написания кода.
  • Выбранным языком программирования. Некоторые языки программирования определяют стили именования переменных и функций своим синтаксисом.
  • Привычкой. Большой опыт в программировании формирует привычки специалиста.
  • Профессией. Специфика IT-специальности может требовать особенных стандартов оформления кода.

camelCase

CamelCase (рус. верблюжий регистр/горбатый регистр) выглядит так, как будто заглавные буквы возвышаются над рядом строчных букв, как горбы верблюда. Отсюда и название. Существуют два типа camelCase ↓

lowerCamelCase

В lowerCamelCase нотации каждое слово, кроме первого, начинается с заглавной буквы, а все слова записываются без пробелов:

Другое название стиля: dromedaryCase, mixedCase
Варианты использования: для именования переменных, функций, свойств объектов и методов.

Пример с JavaScript:

// Пример именования переменной
const lastName = 'Бабаян';

// Пример именования функции
function calculateSum(a, b) {
    return a + b;
}

const person = {
  firstName: "Георгий", // Пример именованияя свойств объектов
  lastName: "Бабаян", // Пример именованияя свойств объектов
  profession: "Основатель Elbrus Bootcamp",
  sayHello: function() { // Пример именования методов объектов
    console.log("Привет, меня зовут " + this.name + "!");
  }
};

UpperCamelCase

В нотации Паскаля каждое слово пишется с заглавной буквы, а пробелов нет.

Альтернативное название стиля: PascalCase

PascalCase — главный стиль для написания кода на языке Pascal. Этот язык программирования считается устаревшим, но некоторые разработчики все-таки используют его для создания ПО и встроенных систем.

var
LastName: string = 'Smith';
// Команда на языке Pascal
Варианты использования: для названия функций, классов, enum, методов и конструкторов объектов.

Пример с JavaScript:

// Создание класса приюта для животных
class AnimalShelter {
  constructor() {
    this.animals = [];
  }

  addAnimal(animal) {
    this.animals.push(animal);
  }

  getAnimals() {
    return this.animals;
  }
}

//Пример конструктора объекта
function GoodPerson(name, age) {
  this.name = name;
  this.age = age;
}

// Создаем новый экземпляр объекта, используя конструктор
const person1 = new GoodPerson("Света", 25);
const person2 = new GoodPerson("Евгений", 30);

Пример на Python:

# Создание класса
class GoodPerson:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Привет, меня зовут {self.name} и мне {self.age} лет.")

    def help_others(self):
        print("Я всегда готов помочь другим.")

# Создание экземпляра класса GoodPerson
good_person = GoodPerson("Анна", 30)

snake_case

Стиль написания идентификаторов, при котором слова разделяются символом нижнего подчеркивания — «_» называется snake_case. Знак нижнего подчеркивания ползет по строке, как змея, и при этом все буквы нижнего регистра:

Другие названия стиля: snail_case, pothole_case
Варианты использования: для нейминга файлов, переменных, функций, методов, свойств объектов, модулей, пакетов и атрибутов.

Пример на Python:

# Так выглядит объявление переменной
last_name = 'Smith' 

# Определение функции
def calculate_average(numbers_list):
    """
    Функция, которая вычисляет среднее значение чисел в списке.
    """
    total = sum(numbers_list)
    average = total / len(numbers_list)
    return average

Пример в HTML:

<!-- Для написания атрибутов -->
<input type="text" name="username_20">

SCREAMING_SNAKE_CASE

Это тот же самый snake_case, но все буквы в названии заглавные. Поэтому складывается ощущение, что КОД_КРИЧИТ_НА_ВАС, иногда его называют орущей змеей:

Другие названия стиля: ALL_CAPS, MACRO_CASE, CONSTANT_CASE
Варианты использования: для констант.

Пример на Python:

# Это константа
MAX_ITERATIONS = 1000

Пример в JavaScript:

const DEFAULT_LANG = 'ENGLISH';

Главное, что вы должны усвоить, если видите SCREAMING_SNAKE_CASE переменные — то их изменять ни в коем случае нельзя!

kebab-case

Kebab case — это стиль написания идентификаторов, при котором слова разделяются дефисами, а все буквы — строчные. Буквы словно нанизываются на шпажку, как кебаб:

Другие названия: dash-case, lisp-case, spinal-case
Варианты использования: для именования файлов, классов, селекторов классов, индентификаторов и атрибутов. А также в написании свойств и составлении URL-адресов.

Применение в CSS:

/* Перед нами селектор класса */
.my-element {
  color: red;
}

/* CSS свойство записано через дефис*/
.h1 {
  font-size: 16px; 
}

Применение в HTML:

<!-- Для написания CSS-классов -->
<div class="my-class-name"></div>

<!-- Для атрибутов --> 
<p id="selected-color">Ты можешь научиться программированию! Я в тебя верю!</p>

flatcase

Эта нотация используется довольно редко, потому что она недостаточно удобна. Все слова в этом стиле пишутся строчными буквами без пробела, как хэштег в социальной сети. Получается один «плоский» код — «flat» code:

Варианты использования: при названии файлов и папок, пакетов, наборов модулей и библиотек, а также в записи атрибутов и в формировании URL адресов.

Пример в HTML:

<!-- В именовании значения атрибутов --> 
<input name="username"> 
Софья Пирогова

Софья Пирогова

автор статей / копирайтер
Александра Боченкова

Александра Боченкова

автор статей / копирайтер