Нотации в программировании: правила именования
Одни разработчики используют дефисы вместо пробелов, другие — пишут весь код слитно. Какой-то код написан с использованием заглавных буква, а какой-то — полностью строчными. Почему так? И от чего это зависит?
Нотация — это способ записи элементов кода. Она помогает программистам создавать более структурированный код, который легче прочитать и понять другим разработчикам.
Для чего нужны правила именования в программировании?
Код в программировании состоит из последовательности инструкций. Каждая инструкция может включать в себя различные элементы, такие как: идентификаторы переменных, методов, функций, классов, ключевые слова, литералы и операторы.
Идентификаторы должны быть содержательны. Представьте, что вам нужно создать переменную, в которую будет записываться фамилия. Для определения элемента недостаточно одного слова, так как по-английски фамилия — это «Last Name». Использовать только «Name» нельзя, так как это будет искажать смысл. И тут возникает проблема — мы не можем использовать пробелы в названиях. Пробел воспринимается компилятором или интерпретатором как разделитель между различными частями кода, что приводит к ошибкам. А нотации — это способ написания идентификаторов таким образом, чтобы код воспроизводился без ошибок.
Существует несколько видов нотаций. Каждый разработчик выбирает свой способ замены пробелов в идентификаторе. Выбор обуславливается:
- Спецификой проекта. Если над проектом работает команда разработчиков, они договариваются о выборе нотации до начала написания кода.
- Выбранным языком программирования. Некоторые языки программирования определяют стили именования переменных и функций своим синтаксисом.
- Привычкой. Большой опыт в программировании формирует привычки специалиста.
- Профессией. Специфика IT-специальности может требовать особенных стандартов оформления кода.
camelCase
CamelCase (рус. верблюжий регистр/горбатый регистр) выглядит так, как будто заглавные буквы возвышаются над рядом строчных букв, как горбы верблюда. Отсюда и название. Существуют два типа camelCase ↓
lowerCamelCase
В lowerCamelCase нотации каждое слово, кроме первого, начинается с заглавной буквы, а все слова записываются без пробелов:
Варианты использования: для именования переменных, функций, свойств объектов и методов.
Пример с 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 — главный стиль для написания кода на языке 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. Знак нижнего подчеркивания ползет по строке, как змея, и при этом все буквы нижнего регистра:
Варианты использования: для нейминга файлов, переменных, функций, методов, свойств объектов, модулей, пакетов и атрибутов.
Пример на 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, но все буквы в названии заглавные. Поэтому складывается ощущение, что КОД_КРИЧИТ_НА_ВАС, иногда его называют орущей змеей:
Варианты использования: для констант.
Пример на Python:
# Это константа
MAX_ITERATIONS = 1000
Пример в JavaScript:
const DEFAULT_LANG = 'ENGLISH';
Главное, что вы должны усвоить, если видите SCREAMING_SNAKE_CASE переменные — то их изменять ни в коем случае нельзя!
kebab-case
Kebab 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">