0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<blockquote><p>Что самое трудное в работе программиста? Выдумывать имена для переменных.</p>
1
<blockquote><p>Что самое трудное в работе программиста? Выдумывать имена для переменных.</p>
2
</blockquote><p>Эта шутка пользуется популярностью среди программистов не случайно. Именование часто становится причиной целых баталий. И действительно, то, как мы именуем наши сущности (функции/переменные/константы/классы/модули), имеет большое значение, ведь большую часть времени мы читаем код, а не пишем его.</p>
2
</blockquote><p>Эта шутка пользуется популярностью среди программистов не случайно. Именование часто становится причиной целых баталий. И действительно, то, как мы именуем наши сущности (функции/переменные/константы/классы/модули), имеет большое значение, ведь большую часть времени мы читаем код, а не пишем его.</p>
3
<p>В этой статье я разберу наиболее общие правила, принятые в среде разработчиков. Для примеров будет использоваться javascript, но это не принципиально. Рекомендации подходят для всех.</p>
3
<p>В этой статье я разберу наиболее общие правила, принятые в среде разработчиков. Для примеров будет использоваться javascript, но это не принципиально. Рекомендации подходят для всех.</p>
4
<h3>Нотация</h3>
4
<h3>Нотация</h3>
5
<p>Перед тем, как говорить о семантике, давайте посмотрим на синтаксис. Существует несколько популярных нотаций именования:</p>
5
<p>Перед тем, как говорить о семантике, давайте посмотрим на синтаксис. Существует несколько популярных нотаций именования:</p>
6
<ul><li>Верблюжья нотация (CamelCase): myClass</li>
6
<ul><li>Верблюжья нотация (CamelCase): myClass</li>
7
<li>Змеиная нотация (snake_case): my_const</li>
7
<li>Змеиная нотация (snake_case): my_const</li>
8
<li>Шашлычная нотация (kebab-case): my-data</li>
8
<li>Шашлычная нотация (kebab-case): my-data</li>
9
<li>Особняком стоит<a>Венгерская нотация</a></li>
9
<li>Особняком стоит<a>Венгерская нотация</a></li>
10
</ul><p>В реальности их гораздо больше, хотя многие вышли из обихода и не употребляются, либо употребляются крайне редко (по крайней мере, вряд ли многие помнят COBOL-CASE).</p>
10
</ul><p>В реальности их гораздо больше, хотя многие вышли из обихода и не употребляются, либо употребляются крайне редко (по крайней мере, вряд ли многие помнят COBOL-CASE).</p>
11
<p>Возникает вопрос, какой выбрать стиль? Ответ очень прост. В каждом конкретном языке программирования существует общепризнанный - часто официальный - стандарт кодирования. Именно он должен являться для вас ориентиром. Потратьте время, найдите стандарт для вашего языка и пробегитесь по нему, обычно он лежит на гитхабе и содержит большое количество показательных примеров.</p>
11
<p>Возникает вопрос, какой выбрать стиль? Ответ очень прост. В каждом конкретном языке программирования существует общепризнанный - часто официальный - стандарт кодирования. Именно он должен являться для вас ориентиром. Потратьте время, найдите стандарт для вашего языка и пробегитесь по нему, обычно он лежит на гитхабе и содержит большое количество показательных примеров.</p>
12
<blockquote><p>Подписывайтесь на<a>канал Кирилла Мокевнина в Telegram</a>- чтобы узнать больше о программировании и профессиональном пути разработчика</p>
12
<blockquote><p>Подписывайтесь на<a>канал Кирилла Мокевнина в Telegram</a>- чтобы узнать больше о программировании и профессиональном пути разработчика</p>
13
</blockquote><h3>Размер имеет значение</h3>
13
</blockquote><h3>Размер имеет значение</h3>
14
<p>Те, кто сдавал лабораторные по программированию, хорошо помнят, что большинство переменных в них были однобуквенными. Интересный факт состоит в том, что в первых языках программирования идентификаторы были таки односимвольными, как обозначения в математике. Первым языком, судя по всему, который начал использовать слова как идентификаторы, был Лисп. С тех пор (шестидесятые) утекло много воды и использование однобуквенных идентификаторов в современном мире рассматривается как моветон.</p>
14
<p>Те, кто сдавал лабораторные по программированию, хорошо помнят, что большинство переменных в них были однобуквенными. Интересный факт состоит в том, что в первых языках программирования идентификаторы были таки односимвольными, как обозначения в математике. Первым языком, судя по всему, который начал использовать слова как идентификаторы, был Лисп. С тех пор (шестидесятые) утекло много воды и использование однобуквенных идентификаторов в современном мире рассматривается как моветон.</p>
15
<p>И все же их можно и нужно использовать в некоторых ситуациях. Обычно это счетчики и индексы.</p>
15
<p>И все же их можно и нужно использовать в некоторых ситуациях. Обычно это счетчики и индексы.</p>
16
<h3>Сущность-Действие</h3>
16
<h3>Сущность-Действие</h3>
17
<p>Сравните:</p>
17
<p>Сравните:</p>
18
<p>Когда мы реализуем функцию, то описываем некоторое действие, а действия в естественных языках выражаются глаголами. Очевидным следствием является то, что имя функции должно быть глаголом. Удивительно, при всей простоте и естественности этого правила, новички часто именуют функции как существительные.</p>
18
<p>Когда мы реализуем функцию, то описываем некоторое действие, а действия в естественных языках выражаются глаголами. Очевидным следствием является то, что имя функции должно быть глаголом. Удивительно, при всей простоте и естественности этого правила, новички часто именуют функции как существительные.</p>
19
<p>С переменными обычно такой проблемы не возникает, никто не использует глаголы для их именования, но на всякий случай: значение - существительное.</p>
19
<p>С переменными обычно такой проблемы не возникает, никто не использует глаголы для их именования, но на всякий случай: значение - существительное.</p>
20
<h3>Предикаты</h3>
20
<h3>Предикаты</h3>
21
<p>Напомню, что предикат - это функция-проверка, она всегда возвращает либо true, либо false.</p>
21
<p>Напомню, что предикат - это функция-проверка, она всегда возвращает либо true, либо false.</p>
22
<p>В большинстве языков предикаты предваряют префиксом is.</p>
22
<p>В большинстве языков предикаты предваряют префиксом is.</p>
23
<p>Но не все языки следуют этому правилу. В большинстве лиспов, а так же в ruby (который взял это из лиспов) используется знак ? в конце слова:</p>
23
<p>Но не все языки следуют этому правилу. В большинстве лиспов, а так же в ruby (который взял это из лиспов) используется знак ? в конце слова:</p>
24
<p>Если учесть, что в указанных языках вызов функции не требует скобок в конце, то такая форма смотрится особенно естественной.</p>
24
<p>Если учесть, что в указанных языках вызов функции не требует скобок в конце, то такая форма смотрится особенно естественной.</p>
25
<h4>Вхождение</h4>
25
<h4>Вхождение</h4>
26
<p>Не все предикаты можно выразить через is. Например, как задать вопрос, если мы хотим узнать, есть ли в списке чисел нечетное? В таких ситуациях принято использовать слово has:</p>
26
<p>Не все предикаты можно выразить через is. Например, как задать вопрос, если мы хотим узнать, есть ли в списке чисел нечетное? В таких ситуациях принято использовать слово has:</p>
27
<h3>Количество</h3>
27
<h3>Количество</h3>
28
<p>Если вам нужна переменная, в которой содержится количество чего-либо, используйте комбинацию: сущность во множественном числе + count.</p>
28
<p>Если вам нужна переменная, в которой содержится количество чего-либо, используйте комбинацию: сущность во множественном числе + count.</p>
29
<p>Это правило важнее даже в другом варианте, а именно, как не надо называть переменную, обозначающую количество:</p>
29
<p>Это правило важнее даже в другом варианте, а именно, как не надо называть переменную, обозначающую количество:</p>
30
<p>Такое именование гарантированно вводит в заблуждение. Сущность во множественном числе всегда должна обозначать только коллекцию.</p>
30
<p>Такое именование гарантированно вводит в заблуждение. Сущность во множественном числе всегда должна обозначать только коллекцию.</p>
31
<h3>Примеры</h3>
31
<h3>Примеры</h3>
32
<blockquote><h3>Дополнительные материалы</h3>
32
<blockquote><h3>Дополнительные материалы</h3>
33
<ul><li><a>Ошибки именования в программировании I</a></li>
33
<ul><li><a>Ошибки именования в программировании I</a></li>
34
</ul></blockquote>
34
</ul></blockquote>