10 советов для выбора лучшего имени переменной

Человек так устроен. Мы всему норовим дать имя: процессу, явлению, тому парню в розовой рубашке. Да и вообще у нас у самих есть свое собственное имя! (шок) Кто, например, решил, что техническое устройство (в виде замкнутого кольца) для ускорения заряженных частиц  нужно назвать СИНХРОФАЗОТРОН! Согласитесь, удобно одним содержательным словом описать целое устройство, и из названия сразу же понятен смысл функции, которую оно выполняет. Правда, это справедливо в том случае, если имя выбрано содержательным. Так почему же, когда мы пишем программы, мы должны действовать как-то по другому?  Отнюдь, один из уважаемых профессионалов сказал, что на придумывание имени для переменной/класса должно уходить столько же времени, сколько на описание логики работы с этой переменной/классом. Предлагаю вашему вниманию 10 советов для правильного выбора имени переменной, про именование классов и методов мы поговорим в других статьях.

1. Имена должны передавать намерения программиста

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

Такое имя не передает намерения разработчика. Можно заменить на более содержательное

Теперь комментарий становится излишним.

2. Избегайте дезинформации

Старайтесь избегать ложных ассоциаций в названиях переменных. Например,

В первой строчке мы называем переменную, объявленную как Map, accountList. Для программистов, List означает совершенно четкую ассоциацию со структурой данных, не являющуюся Map. Во второй строчке hp ассоциируется с одной известной конторой, которая делает принтеры. Последние две переменные имеют содержательные имена, но визуально их довольно легко спутать.

3. Используйте осмысленные различия

“Легко написать код, понятный компьютеру. Трудно написать код, понятный человеку”. Эта цитата проходит красной нитью через все постулаты сторонников “чистого кода”. Если программист пишет код, только для того чтобы его “съел” компилятор, то в конечном итоге делает хуже и себе, и программистам, которые будут работать с его кодом. Поэтому делайте различия в именовании схожих по смыслу переменных более очевидными. Например, код

лучше заменить на

Различия становятся очевидными и код читается легче.

4. Используйте удобопроизносимые имена

Этот пункт я хочу особенно выделить. Разработка программного обеспечения – это процесс, в котором много людей взаимодействует между собой. Социальный аспект имеет большое значение. В обсуждениях между разработчиками, тестировщиками и другими участниками процесса разработки гораздо удобнее произносить имена конкретных переменных, если они имеют удобные названия. Если вы работаете не удаленно, то для вас этот пункт должен быть понятен. Хотя, даже при удаленной работе, вы так или иначе будите общаться с членами команды.

5. Используйте имена, удобные для поиска

Эта рекомендация является наиболее подходящей для именования констант. Однако, если архитектура вашего приложения подразумевает, например, создание отдельного класса utils для хранения всех констант, у вас не возникнет проблем с поиском.

6. Избегайте схем кодирования

Если вы разрабатываете на Java, то необходимости кодировать имена нет. Наоборот, вы создаете себе дополнительные проблемы, пользуясь готовыми, либо придумывая собственные методы кодирования. Не тратьте понапрасну ваше мыслетопливо.

7. Венгерская запись – для динозавров

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

8. Префиксы членов классов – для мамонтов

Когда человек выживал в условиях вечной мерзлоты, многие писали поля классов следующим образом

Сейчас, конечно, такой необходимости нет. Хотя если вы молодой разработчик, врят ли вы где-то могли видеть подобную запись.

9. Именование интерфейсов

Например, вы создали интерфейс для реализации паттерна “абстрактная фабрика” для реализации геометрических фигур. Не стоит называть его IShapeFactory. Лучше просто ShapeFactory.

10. Избегайте мысленных преобразований

Безусловно, называть счетчики в циклах i, j, k, d и т.д. это нормально. Это традиция и это все понимают. Причем область действия таких счетчиков достаточно мала. Однако, старайтесь не заставлять людей, читающих ваш код, мысленно жонглировать и пытаться понять, что означает переменная q. (Хотя вы знаете что q означает символ глутамина).

Еще больше рекомендаций по написанию чистого кода вы можете найти в книге Роберта Мартина “Чистый код” – обязательно к прочтению каждому разработчику.

Оставить комментарий:

Ваш email не будет опубликован.