Ръководство за променливо име

Ползи от именуването
Софтуерът трябва да бъде написан, за да бъде разбран от хората, така че имената на променливите трябва да са подходящи. Хората, които разглобяват/четат кода ви, за разширение или поправка, трябва да го разберат. Много често имената на променливите заемат много място и са трудни за разбиране. Дори добронамерените инженери много често избират имена, които са само повърхностно полезни в най-добрия случай.
Целта на този документ е да помогне на инженерите да изберат добри имена на променливи. Специално ще се съсредоточим върху прегледа на кода, защото тук се разкриват много нюанси с лоши имена на променливи. Има, разбира се, много причини за доброто именуване на променливи (например, за да се улесни поддържането на кода).
Защо имена на променливи?
Основната причина за даване на значими имена на променливи е, за да могат хората да го разберат. Код, който е написан чисто за компютър, най-вероятно ще бъде безсмислен.
Пример за автоматично генериран код:
Всички инженери могат да кажат, че горният код е прекалено труден за разбиране и също така нарушава две общи насоки:
- Не го режете;
- Дайте смислени имена.
Може би неочаквано, тези препоръки също могат да имат обратен ефект. Рязането не винаги е лошо нещо и ще бъде обсъдено по-късно. Освен смисленост, терминът е доста неясен и изисква разясняване. Някои инженери смятат, че добрите имена винаги трябва да бъдат много подробни (напр. MultiDictionaryLanguageProcessorOutput). Други откриват, че за даване на смислени имена са необходими известни усилия и те се отказват някъде по средата. Следователно спазването на горните правила води до следния резултат:
Рецензенти с малко усилия ще разберат горния код, много по-лесно от първия пример. Имената на променливите са четливи и точни. Но те са безполезни и губят място, защото:
-
processElements - повечето от кода „обработва“ обекти (в края на краищата кодът се изпълнява от „процесора“), така че процесът представлява седем безполезни символа, които не означават нищо повече от „изчисления“. елементи не е много по-добре. Като се има предвид, че функцията прави нещо за колекцията, това вече е очевидно. Има дори грешка в кода, тъй като името не помага на читателя да разбере защо е необходима функцията.
numResults - по-голямата част от кода дава резултат (в крайна сметка), така както при процеса, Резултатите са седем безполезни знака. Пълното име на променливата numResults предполага, че тя има за цел да ограничи количеството на изхода, но това е доста неясно и изисква допълнителни усилия за четеца.