en.javascript.info/01-js/02-first-steps/04-variable-names/article.md
Ilya Kantor f301cb744d init
2014-10-26 22:10:13 +03:00

9 KiB
Raw Blame History

Правильный выбор имени переменной

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

[cut]

Дело в том, что большинство времени мы тратим не на изначальное написание кода, а на его развитие.

Возможно, эти слова не очевидны, если вы пока что ничего большого не писали или пишете код "только для чтения" (написал 5 строк, отдал заказчику и забыл). Но чем более серьёзные проекты вы будете делать, тем более актуальны они будут для вас.

Что такое это "развитие"? Это когда я вчера написал код, а сегодня (или спустя неделю) прихожу и хочу его поменять. Например, вывести сообщение не так, а эдак... Обработать товары по-другому, добавить функционал.. А где у меня там сообщение хранится? А где товар?...

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

  • **Правило 1.**

    Никакого транслита. Только английский.

    Неприемлемы:

    var moiTovari;
    var cena;
    var ssilka;
    

    Подойдут:

    var myGoods; 
    var price;
    var link;
    

    Чем плох транслит?

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

    Во-вторых, русский транслит хуже читается и длиннее, чем названия на английском.

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

    Если вы вдруг не знаете английский -- самое время выучить.

  • **Правило 2.**

    Использовать короткие имена только для переменных "местного значения".

    Называть переменные именами, не несущими смысловой нагрузки, например a, e, p, mg -- можно только в том случае, если они используются в небольшом фрагменте кода и их применение очевидно.

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

  • **Правило 3.**

    Переменные из нескольких слов пишутся вместеВотТак.

    Например:

    var borderLeftWidth;
    

    Этот способ записи называется "верблюжьей нотацией" или, по-английски, "camelCase".

    Существует альтернативный стандарт, когда несколько слов пишутся через знак подчеркивания '_':

    var border_left_width;
    

    Преимущественно в JavaScript используется вариант borderLeftWidth, в частности во встроенных языковых и браузерных функциях. Поэтому целесообразно остановиться на нём.

    Ещё одна причина выбрать "верблюжью нотацию" -- запись в ней немного короче, чем c подчеркиванием, т.к. не нужно вставлять '_'.

  • **Правило последнее, главное.**

    Имя переменной должно максимально чётко соответствовать хранимым в ней данным.

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

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

Бывает так, что вы написали код, через некоторое время к нему возвращаетесь, и вам надо что-то поправить. Например, изменить какую-то рамку border...

...И вы помните, что переменная, в которой хранится нужное вам значение, называется примерно так: borderLeftWidth. Вы ищете ее в коде, не находите, разбираетесь, и обнаруживаете, что на самом деле переменная называлась вот так: leftBorderWidth. После чего вносите нужные правки.

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

То есть, у вас в коде leftBorderWidth, а вы ее переименовываете на borderLeftWidth.

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

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

[summary] Смысл имени переменной -- это "имя на коробке", по которому мы сможем максимально быстро находить нужные нам данные.

Не нужно бояться переименовывать переменные, если вы придумали имя получше.

Современные редакторы позволяют делать это очень удобно и быстро. Это в конечном счете сэкономит вам время. [/summary]

[warn header="Храните в переменной то, что следует"] Бывают ленивые программисты, которые, вместо того чтобы объявить новую переменную, используют существующую.

В результате получается, что такая переменная -- как коробка, в которую кидают то одно, то другое, то третье, при этом не меняя название. Что в ней лежит сейчас? А кто его знает.. Нужно подойти, проверить.

Сэкономит такой программист время на объявлении переменной -- потеряет в два раза больше на отладке кода.

"Лишняя" переменная -- добро, а не зло. [/warn]