Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (9) здесь было Вс Фев 11, 2018 12:54 pm
Самые активные пользователи за неделю
Ярослав
 


Как называть переменные

Перейти вниз

Как называть переменные

Сообщение автор Ярослав в Вс Янв 08, 2017 12:15 am

1. Для начала строгие правила языка:

• Идентификатор может включать в себя буквы латинского алфавита, цифры, знак нижнего подчёркивания _
• Идентификтаор не может начинаться с цифры
• Идентификатор не может совпадать с зарезервированными ключевыми словами: int, char, void, if, else и т. п.
• Имя переменной должно быть уникальным: не может быть двух переменных с одинаковыми именами (*с некоторыми оговорками)
• Языки C / C++ различают строчные и заглавные буквы.

2. Соглашения о заглавности букв в названии переменных. Для переменных существует два возможных стиля оформления (выберите один):

• Только строчными буквами. Несколько слов в имени переменной отделяются подчёркиваниями. Например: count, number_of_cats.
• «Верблюжий стиль»: знаки подчёркивания не используются. Первое слово пишется строчными буквами, последующие начинаются с заглавной буквы. Например: count, numberOfCats.

3. Наконец, КАК называть переменную?

Название переменной должно быть «говорящим». Общее правило звучит так:
• По смыслу, что будет храниться в этой переменной;
• Не поленитесь, переведите смысл на английский язык;
• Не злоупотребляйте сокращениями.

Хорошо Например: length_of_path (длина пути); spending_rate (скорость расходования); number (число); count (количество, счёт).
Хорошо Хуже, но приемлемо: path (путь); spending (потребление).
Плохо Не рекомендуется: p (сокращение от path); sr (аббревиатура, от spending_rate); c (сокращение от count).

Чем плохи избыточно сокращённые имена переменных? Тем же, чем плохи бессмысленные названия переменных: непонятностью. Например, вычисления в таком кусочке кода заставляют мозги как следует поскрипеть:
Код:
   float dtc = s / c * dt;
   float g95c = s / c * g95;
   float g92c = s / c * g92;
И всё равно их смысл непонятен — приходится привлекать предшествующие строки, чтобы расшифровать, что означают s и c. Правильно ли они взаимосвязаны? Нет ли тут логической ошибки в вычислениях? Непонятно.

Непонятность вредит работе программистов: на расшифровку чужих (и даже своих) записей уходит время и умственные усилия. Лучше писать ясно сразу.

4. Иногда однобуквенные имена переменных оправданы. Но именно — иногда.

В первую очередь это касается программирования в области математики, где мы заимствуем имена переменных прямо из учебников: коордианты x и y, скорость v, время t, радиус r и тому подобное. И всё же в области программирования мы не ограничены однобуквенными именами переменных (как ограничена математика) и можем расшифровать попонятнее:

float velocity; // вместо float v
float time; // вместо float t
float radius; // вместо float r

Студия поможет вам набрать длинное имя переменной. Подсказка появляется уже после нескольких первых букв имени переменной, а также её можно вызвать в любой момент принудительно, нажав Ctrl+пробел.

В циклах for по устоявшейся традиции часто используют однобуквенные управляющие переменные i и j, но не более того.

5. Подчёркивайте различия. Отбрасывайте ненужное.

Иногда у нас встречается несколько переменных со схожим смыслом. Например, в задаче «введите три числа» у нас явно будут переменные «первое число», «второе число» и «третье число». Повторяющуюся часть названия нередко можно отбросить как избыточную:

int first_number, second_number, third_number;
int first, second, third; // Ничуть не хуже, меньше мусора

Или даже:

int a, b, c; // Здесь у переменных нет никакого другого смысла, кроме «три числа»

6. Почему не стоит называть переменные транслитом?

Язык PHP писали израильские программисты. Один из них назвал некоторую константу T_PAAMAYIM_NEKUDOTAYIM. Её название выскакивает как часть сообщения об ошибке:

parse error, expecting `T_PAAMAYIM_NEKUDOTAYIM'

Моя программа ожидает что, простите?

Оказывается, двойное двоеточие :: на иврите.

Вашу программу будут читать и поддерживать другие люди, не обязательно русскоговорящие. Возможно, ваша компания вырастет и выйдет на мировую арену. Возможно, ваш код будут редактировать программисты-индусы. Вам бы хотелось встречать в коде иностранный транслит? Полагаю, нет. Даже если его можно перевести гугл-транслейтом, это занимает время и отвлекает.

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

7. Плохими считаются нумерованные имена переменных

Плохо int q1, q11, q111, q1111; // Программист полнеился придумать осмысленные названия
Плохо int n1, n2, n3, n4, n5; // Возможно, тут имеется в виду массив

Решение то же, что и раньше — обдумываем, что хранится в этих переменных, смысл переводим на английский.
avatar
Ярослав
Admin

Posts : 439
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения