0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Представим себе, что программа из прошлого урока выглядит так:</p>
1
<p>Представим себе, что программа из прошлого урока выглядит так:</p>
2
<p>Она по-прежнему работает, но в ней изменилось имя переменной на x. Компьютеру без разницы, как мы называем переменные, это бездушная машина, но вот программистам - нет. Мы гораздо чаще читаем код, чем пишем. Причем не свой, а написанный другими людьми. От качества и понятности имен переменных зависит половина успеха в анализе кода.</p>
2
<p>Она по-прежнему работает, но в ней изменилось имя переменной на x. Компьютеру без разницы, как мы называем переменные, это бездушная машина, но вот программистам - нет. Мы гораздо чаще читаем код, чем пишем. Причем не свой, а написанный другими людьми. От качества и понятности имен переменных зависит половина успеха в анализе кода.</p>
3
<p>Лучше посидеть и придумать название, которое описывает суть, смысл переменной, чем назвать ее как попало, а в будущем переделывать. Постарайтесь давать им такие имена, чтобы они были максимально понятны без контекста, без изучения окружающего кода.</p>
3
<p>Лучше посидеть и придумать название, которое описывает суть, смысл переменной, чем назвать ее как попало, а в будущем переделывать. Постарайтесь давать им такие имена, чтобы они были максимально понятны без контекста, без изучения окружающего кода.</p>
4
<p>Существует общепринятое правило: не используйте транслит для имен, только английский язык. Если вы испытываете сложности с английским, то пользуйтесь переводчиком. Со временем, копаясь в чужом коде, вы сформируете правильные понятия для именования.</p>
4
<p>Существует общепринятое правило: не используйте транслит для имен, только английский язык. Если вы испытываете сложности с английским, то пользуйтесь переводчиком. Со временем, копаясь в чужом коде, вы сформируете правильные понятия для именования.</p>
5
<p>Среди разработчиков есть шутка: "самое сложное в программировании - названия переменных и инвалидация кеша". Придумывать названия и правда сложно. Как бы вы назвали переменную, в которой хранится<em>количество неоплаченных заказов от клиентов, имеющих задолженность в предыдущем квартале?</em></p>
5
<p>Среди разработчиков есть шутка: "самое сложное в программировании - названия переменных и инвалидация кеша". Придумывать названия и правда сложно. Как бы вы назвали переменную, в которой хранится<em>количество неоплаченных заказов от клиентов, имеющих задолженность в предыдущем квартале?</em></p>
6
<p>Самопроверка. Придумайте название для переменной, в которой будет храниться<em>"количество братьев и сестёр короля"</em>. Запишите его в блокноте или отправьте себе на почту. Не указывайте там ничего, кроме названия переменной. А через несколько уроков мы вернёмся к этой теме ;-)</p>
6
<p>Самопроверка. Придумайте название для переменной, в которой будет храниться<em>"количество братьев и сестёр короля"</em>. Запишите его в блокноте или отправьте себе на почту. Не указывайте там ничего, кроме названия переменной. А через несколько уроков мы вернёмся к этой теме ;-)</p>
7
<h2>Стили именования</h2>
7
<h2>Стили именования</h2>
8
<p>greeting - пример простого имени, но не все имена так просты. Довольно часто они составные, то есть включают в себя несколько слов. Например, "имя пользователя". В разных языках применяются разные стили кодирования, и имя переменной будет отличаться.</p>
8
<p>greeting - пример простого имени, но не все имена так просты. Довольно часто они составные, то есть включают в себя несколько слов. Например, "имя пользователя". В разных языках применяются разные стили кодирования, и имя переменной будет отличаться.</p>
9
<p>В именовании переменных можно выделить четыре основных подхода, которые иногда комбинируют друг с другом. Все эти подходы проявляют себя, когда имя переменной состоит из нескольких слов:</p>
9
<p>В именовании переменных можно выделить четыре основных подхода, которые иногда комбинируют друг с другом. Все эти подходы проявляют себя, когда имя переменной состоит из нескольких слов:</p>
10
<ul><li>kebab-case - составные части переменной разделяются дефисом. Например: my-super-var.</li>
10
<ul><li>kebab-case - составные части переменной разделяются дефисом. Например: my-super-var.</li>
11
<li>snake_case - для разделения используется подчеркивание. Например: my_super_var.</li>
11
<li>snake_case - для разделения используется подчеркивание. Например: my_super_var.</li>
12
<li>CamelCase - каждое слово в переменной пишется с заглавной буквы. Например: MySuperVar.</li>
12
<li>CamelCase - каждое слово в переменной пишется с заглавной буквы. Например: MySuperVar.</li>
13
<li>lowerCamelCase - каждое слово в переменной пишется с заглавной буквы, кроме первого. Например: mySuperVar.</li>
13
<li>lowerCamelCase - каждое слово в переменной пишется с заглавной буквы, кроме первого. Например: mySuperVar.</li>
14
</ul><p>В Javascript используется CamelCase и его вариация lowerCamelCase, при котором первая буква первого слова - строчная. Именно lowerCamelCase применяется для переменных. Это значит, что имена соединяются друг с другом, при этом все имена кроме первого становятся с заглавной буквы: userName. С тремя словами это выглядит так: mySuperVariable.</p>
14
</ul><p>В Javascript используется CamelCase и его вариация lowerCamelCase, при котором первая буква первого слова - строчная. Именно lowerCamelCase применяется для переменных. Это значит, что имена соединяются друг с другом, при этом все имена кроме первого становятся с заглавной буквы: userName. С тремя словами это выглядит так: mySuperVariable.</p>
15
<h2>Магические числа</h2>
15
<h2>Магические числа</h2>
16
<p>Вспомним один из прошлых уроков:</p>
16
<p>Вспомним один из прошлых уроков:</p>
17
<p>С точки зрения профессиональной разработки, такой код "пахнет". Так описывают код, который сложен для понимания. И причина здесь вот в чем: уже сейчас, глядя на число 60 и 1.25, можно задаться вопросом: "что это за числа?". А представьте, что будет через месяц! А как его поймет новый программист, не видевший код ранее? В нашем примере контекст восстанавливается благодаря грамотному именованию, но в реальной жизни код значительно сложнее, и догадаться до смысла чисел зачастую невозможно.</p>
17
<p>С точки зрения профессиональной разработки, такой код "пахнет". Так описывают код, который сложен для понимания. И причина здесь вот в чем: уже сейчас, глядя на число 60 и 1.25, можно задаться вопросом: "что это за числа?". А представьте, что будет через месяц! А как его поймет новый программист, не видевший код ранее? В нашем примере контекст восстанавливается благодаря грамотному именованию, но в реальной жизни код значительно сложнее, и догадаться до смысла чисел зачастую невозможно.</p>
18
<p>Этот "запах" называют Magic Numbers (магические числа). Числа, происхождение которых невозможно понять без глубокого знания происходящего внутри данного участка кода.</p>
18
<p>Этот "запах" называют Magic Numbers (магические числа). Числа, происхождение которых невозможно понять без глубокого знания происходящего внутри данного участка кода.</p>
19
<p>Выход из ситуации прост: достаточно создать переменные с правильными именами, как все встанет на свои места.</p>
19
<p>Выход из ситуации прост: достаточно создать переменные с правильными именами, как все встанет на свои места.</p>
20
<p>Обратите внимание на следующие детали:</p>
20
<p>Обратите внимание на следующие детали:</p>
21
<ul><li>Именование lowerCamelCase.</li>
21
<ul><li>Именование lowerCamelCase.</li>
22
<li>Две новые переменные отделены от последующих вычислений пустой строчкой. Эти переменные имеют смысл и без вычислений, поэтому такое отделение уместно, оно повышает читаемость.</li>
22
<li>Две новые переменные отделены от последующих вычислений пустой строчкой. Эти переменные имеют смысл и без вычислений, поэтому такое отделение уместно, оно повышает читаемость.</li>
23
<li>Получился хорошо именованный и структурированный код, но он длиннее прошлой версии. Так часто бывает, и это нормально. Код должен быть читабельным.</li>
23
<li>Получился хорошо именованный и структурированный код, но он длиннее прошлой версии. Так часто бывает, и это нормально. Код должен быть читабельным.</li>
24
</ul>
24
</ul>