Выберите имя для своей переменной, как если бы вы выбрали имя для своего ребенка.

Роберт С. Мартин (дядя Боб) в «Чистом коде» подчеркнул, насколько важно иметь осмысленные имена в нашей кодовой базе. Это настолько важно, что становится первым критерием его чистого кода.

Иногда мы просто выбираем случайные имена, которые придумываем, когда пишем код. Но если мы выберем их неправильно, может возникнуть несогласованность, путаница, когда вам придется перечитывать код, или двусмысленность. Так как же выбрать хорошие имена для наших переменных? По словам дяди Боба, существует около 16 критериев осмысленных имен.

Но давайте просто поговорим о некоторых из них.

Используйте имена, раскрывающие намерения

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

Так что вместо того, чтобы писать

int d; // elapsed time in days

Лучше просто написать

int elapsedTimeInDays;

Эта книга убеждает нас, насколько это важно. Это кажется таким простым, но иногда это сложно сделать. У нас может возникнуть соблазн создать несколько коротких и простых имен, которые ничего не значат и не говорят нам о вещах, которые они представляют. Но это только затруднит определение того, что делает код.

Делайте значимые различия

Признайтесь: сколько раз вы делаете одну переменную (например: account), а когда делаете другую такую ​​же, просто добавляете цифры для ее пост-фикса (account1, account2, … accountN)? Избегайте этого, это неинформативно. Как отличить значение, которое он представляет, от простого чтения имен?

Шумовые слова также бессмысленны и избыточны. Трудно отличить ProductInfo от ProductData. И слово variable для переменной или table для таблицы (customersTable и т.д.) явно не нужно.

Выберите одно слово для каждой концепции

Выберите одно слово для каждого абстрактного понятия и придерживайтесь его. Это сбивает с толку, когда fetch, retrieve и get являются эквивалентными методами разных классов. Важно быть последовательным.

Используйте имена доменов решений или проблем

Люди, которые будут читать ваш код, скорее всего, будут программистами. Так что используйте термины компьютерной науки всякий раз, когда вы можете. Имя AccountVisitor много значит для программиста, знакомого с шаблоном Visitor.

Когда для вашего кода не хватает термина «программист», используйте имя из проблемного домена.

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

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

Вероятно, мы удивим кого-то, когда применим правило оставлять палаточный лагерь чище, чем вы его нашли, и решим переименовать вещи, чтобы улучшить читаемость кода.