Учимся определять порядок слов при именовании переменных

Введение
Если вы не всегда понимаете, в каком порядке в именах переменных следует размещать слова, то данная статья поможет в этом разобраться.
По своему опыту могу сказать, что многие начинающие программисты часто допускают ошибки при именовании переменных, располагая в них слова в нетипичном для англоговорящих людей порядке. Например, "сумма чисел" переводят как sumNumbers, а "количество десятков", как countTens, что является калькой с русского языка, которая не соответствует правилам английской грамматики.
Давайте разбираться, как избегать подобных ошибок, чтобы имена переменных выглядели более естественно. Рассмотрим для начала самые простые случаи, когда имена состоят из двух слов.
  1. Имена переменных без предлогов
1
Уточнение (сущ.) + главное слово (сущ.)
Если имя переменной состоит из словосочетания, оба слова которого являются существительными, то для их размещения используется схема "уточнение + главное слово". В этом случае последним идет объект, о котором идет речь, а первым — уточняющее его слово.
Для определения главного слова необходимо задать вопрос (чего?). То слово, от которого задают вопрос, и является главным. Например, сумма (чего?) чисел.
"Сумма" — главное слово, поэтому его необходимо разместить в имени переменной последним. Первым словом идет "чисел", которое уточняет, сумма чего хранится в переменной. В итоге получаем имя numberSum.
Если переменную назвать sumNumbers, то ее можно воспринять как "суммировать числа". Такое имя ассоциируется с действием (именем метода), а не с именем переменной.
Размещать слова в имени следует справа налево от более частных ("сумма") к более общим ("чисел").
Пример:
"десятков ← (чего?) ← количество"
tenCount → уточнение: ten, объект: count

"игры ← (чего?) ← счет"
gameScore → уточнение: game, объект: score

"кофе ← (чего?) ← цена"
coffeePrice → уточнение: coffee, объект: price
Как видите, порядок слов в русском и английском языке отличается.
2
Состояние (прил.) + главное слово (сущ.)
Если имя переменной состоит из словосочетания, состоящего из прилагательного и существительного, то для их размещения используется схема "состояние + главное слово". В этом случае последним идет объект, о котором идет речь, а первым — уточняющее его слово.
Данный вариант именования не отличается от способа из первого раздела. Разница лишь в наличии прилагательного и задаваемом вопросе.
Также определяем главное слово, задавая от него вопрос к прилагательному(какой? какое?). Например, число (какое?) максимальное.
"Максимальное" — состояние числа, а "число" — объект. В итоге получаем имя maxNumber.
В качестве описания состояния часто используются такие слова, как min, total, current, full, original и так далее. В английском они являются прилагательными и размещаются перед существительным.
Пример:
"общее ← (какое?) ← количество"
totalCount → состояние: total, объект: count

"пустой ← (какой?) ← массив"
emptyArray → состояние: empty, объект: array

"исходное ← (какое?) ← число"
originalNumber → состояние: original, объект: число
В этом случае порядок слов в русском и английском языке одинаков.
2.Имена переменных с предлогом of
В именах переменных предлог of используется для явного указания связи между словами. Однако в большинстве случаев следует отдавать предпочтение составным существительным без предлогов, так как они короче, проще для восприятия и содержат только значимые слова.
Почему избегают предлогов?
  • Имена без предлогов короче и лучше читаются
  • Предлоги не добавляют значимой информации, особенно если контекст переменной и так ясен
  • В профессиональном программировании принято избегать предлоги для упрощения кода
Например, переменную, хранящую сумму чисел, можно назвать sumOfNumbers, что дословно переводится как "сумма из чисел". Но в русском языке предлог "из" часто опускают, говоря просто "сумма чисел".
В данном случае of используется для добавления ясности (и так очевидной), что сумма именно чисел, а не чего-то другого.
Пример:
"Высота треугольника" →
triangleHeight предпочтительнее heightOfTriangle

"Количество книг" →
booksCount предпочтительнее countOfBooks

"Список пользователей" →
userList предпочтительнее listOfUsers
Когда использование предлогов оправдано?
  • Если без предлога связь между словами становится неочевидной. Например, sumOfMatrixElements может быть понятнее, чем matrixElementsSum
  • Когда переменные описывают нетривиальные связи, например, rateOfChange (скорость изменения)
Советы по выбору имен:
  • Используйте только значимые слова, которые четко описывают хранимые в переменных данные
  • Не используйте предлог of, если он не добавляет ясности
  • Имена должны быть интуитивно понятны для других разработчиков
Заключение
Из этой статьи вы узнали про способ определения порядка слов в именах переменных. Освоив предлагаемые техники именования, вы резко повысите качество имен своих переменных, а значит ваш код будет чище и понятнее.
Автор: Чимаев Максим
Оцените статью, если она вам понравилась!