init
This commit is contained in:
parent
06f61d8ce8
commit
f301cb744d
2271 changed files with 103162 additions and 0 deletions
|
@ -0,0 +1,13 @@
|
|||
Каждая строчка решения соответствует одному шагу задачи:
|
||||
|
||||
```js
|
||||
//+ run
|
||||
var ourPlanetName = "Земля"; // буквально "название нашей планеты"
|
||||
|
||||
var userName = "Петя"; // "имя посетителя"
|
||||
```
|
||||
|
||||
Названия переменных можно бы сократить, например, до `planet` и `name`, но тогда станет менее понятно, о чем речь.
|
||||
|
||||
Насколько допустимы такие сокращения -- зависит от скрипта, его размера и сложности, от того, есть ли другие планеты и пользователи. В общем, лучше не жалеть букв и называть переменные так, чтобы по имени можно было легко понять, что в ней находится, и нельзя было перепутать переменные.
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
# Объявление переменных
|
||||
|
||||
[importance 3]
|
||||
|
||||
<ol>
|
||||
<li>Создайте переменную для названия нашей планеты и присвойте ей значение `"Земля"`. *Правильное* имя выберите сами.</li>
|
||||
<li>Создайте переменную для имени посетителя со значением `"Петя"`. Имя также на ваш вкус.</li>
|
||||
</ol>
|
118
01-js/02-first-steps/04-variable-names/article.md
Normal file
118
01-js/02-first-steps/04-variable-names/article.md
Normal file
|
@ -0,0 +1,118 @@
|
|||
# Правильный выбор имени переменной
|
||||
|
||||
Правильный выбор имени переменной -- одна из самых важных и сложных вещей в программировании, которая отличает начинающего от гуру.
|
||||
|
||||
[cut]
|
||||
|
||||
Дело в том, что большинство времени мы тратим не на изначальное написание кода, а на его развитие.
|
||||
|
||||
Возможно, эти слова не очевидны, если вы пока что ничего большого не писали или пишете код "только для чтения" (написал 5 строк, отдал заказчику и забыл). Но чем более серьёзные проекты вы будете делать, тем более актуальны они будут для вас.
|
||||
|
||||
Что такое это "развитие"? Это когда я вчера написал код, а сегодня (или спустя неделю) прихожу и хочу его поменять. Например, вывести сообщение не так, а эдак... Обработать товары по-другому, добавить функционал.. А где у меня там сообщение хранится? А где товар?...
|
||||
|
||||
**Гораздо проще найти нужные данные, если они правильно помечены, то есть когда переменная названа *правильно*.**
|
||||
|
||||
<ul>
|
||||
<li>**Правило 1.**
|
||||
|
||||
**Никакого транслита. Только английский.**
|
||||
|
||||
Неприемлемы:
|
||||
|
||||
```js
|
||||
var moiTovari;
|
||||
var cena;
|
||||
var ssilka;
|
||||
```
|
||||
|
||||
Подойдут:
|
||||
|
||||
```js
|
||||
var myGoods;
|
||||
var price;
|
||||
var link;
|
||||
```
|
||||
|
||||
Чем плох транслит?
|
||||
|
||||
Во-первых, среди разработчиков всего мира принято использовать английский язык для имён переменных. И если ваш код потом попадёт к кому-то другому, например вы будете в команде больше чем из одного человека, то велик шанс, что транслит ему не понравится.
|
||||
|
||||
Во-вторых, русский транслит хуже читается и длиннее, чем названия на английском.
|
||||
|
||||
В-третьих, в проектах вы наверняка будете применять библиотеки, написанные другими людьми. Многое уже готово, в распоряжении современного разработчика есть масса инструментов, все они используют названия переменных и функций на английском языке, и вы, конечно, будете их использовать. А от кода, где транслит перемешан с английским -- могут волосы смогут встать дыбом, и не только на голове.
|
||||
|
||||
Если вы вдруг не знаете английский -- самое время выучить.
|
||||
</li>
|
||||
<li>**Правило 2.**
|
||||
|
||||
**Использовать короткие имена только для переменных "местного значения".**
|
||||
|
||||
Называть переменные именами, не несущими смысловой нагрузки, например `a`, `e`, `p`, `mg` -- можно только в том случае, если они используются в небольшом фрагменте кода и их применение очевидно.
|
||||
|
||||
Вообще же, название переменной должно быть понятным. Иногда для этого нужно использовать несколько слов.
|
||||
</li>
|
||||
<li>**Правило 3.**
|
||||
|
||||
**Переменные из нескольких слов пишутся `вместеВотТак`.**
|
||||
|
||||
Например:
|
||||
|
||||
```js
|
||||
var borderLeftWidth;
|
||||
```
|
||||
|
||||
Этот способ записи называется "верблюжьей нотацией" или, по-английски, "camelCase".
|
||||
|
||||
Существует альтернативный стандарт, когда несколько слов пишутся через знак подчеркивания `'_'`:
|
||||
|
||||
```js
|
||||
var border_left_width;
|
||||
```
|
||||
|
||||
Преимущественно в JavaScript используется вариант `borderLeftWidth`, в частности во встроенных языковых и браузерных функциях. Поэтому целесообразно остановиться на нём.
|
||||
|
||||
Ещё одна причина выбрать "верблюжью нотацию" -- запись в ней немного короче, чем c подчеркиванием, т.к. не нужно вставлять `'_'`.
|
||||
</li>
|
||||
<li>**Правило последнее, главное.**
|
||||
|
||||
**Имя переменной должно максимально чётко соответствовать хранимым в ней данным.**
|
||||
|
||||
Придумывание таких имен -- одновременно коротких и точных, при которых всегда понятно, что где лежит, приходит с опытом, но только если сознательно стремиться к этому.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
Позвольте поделиться одним небольшим секретом, который позволит улучшить ваши названия переменных и сэкономит вам время.
|
||||
|
||||
Бывает так, что вы написали код, через некоторое время к нему возвращаетесь, и вам надо что-то поправить. Например, изменить какую-то рамку `border`...
|
||||
|
||||
...И вы помните, что переменная, в которой хранится нужное вам значение, называется примерно так: `borderLeftWidth`. Вы ищете ее в коде, не находите, разбираетесь, и обнаруживаете, что на самом деле переменная называлась вот так: `leftBorderWidth`. После чего вносите нужные правки.
|
||||
|
||||
**Если вы искали переменную с одним именем, а нашли -- с другим, то самый лучший ход -- это *переименовать* переменную, чтобы имя было тем, которое вы искали.**
|
||||
|
||||
То есть, у вас в коде `leftBorderWidth`, а вы ее переименовываете на `borderLeftWidth`.
|
||||
|
||||
Зачем? Дело в том, что в следующий раз, когда вы захотите что-то поправить, то вы будете искать по тому же самому имени. Соответственно, это сэкономит вам время.
|
||||
|
||||
Кроме того, поскольку именно это имя переменной пришло вам в голову -- скорее всего, оно больше соответствует хранимым там данным, чем то, которое вы придумали изначально. Исключения бывают, но в любом случае -- такое несовпадение -- это повод задуматься.
|
||||
|
||||
[summary]
|
||||
Смысл имени переменной -- это "имя на коробке", по которому мы сможем максимально быстро находить нужные нам данные.
|
||||
|
||||
**Не нужно бояться переименовывать переменные, если вы придумали имя получше.**
|
||||
|
||||
Современные редакторы позволяют делать это очень удобно и быстро. Это в конечном счете сэкономит вам время.
|
||||
[/summary]
|
||||
|
||||
|
||||
[warn header="Храните в переменной то, что следует"]
|
||||
Бывают ленивые программисты, которые, вместо того чтобы объявить новую переменную, используют существующую.
|
||||
|
||||
В результате получается, что такая переменная -- как коробка, в которую кидают то одно, то другое, то третье, при этом не меняя название. Что в ней лежит сейчас? А кто его знает.. Нужно подойти, проверить.
|
||||
|
||||
Сэкономит такой программист время на объявлении переменной -- потеряет в два раза больше на отладке кода.
|
||||
|
||||
**"Лишняя" переменная -- добро, а не зло.**
|
||||
[/warn]
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue