HTML Diff
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>