0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><strong>В этой статье мы подробно рассказываем о методах именования классов, функций и переменных, которые позволяют улучшить читаемость вашего кода.</strong></p>
1
<p><strong>В этой статье мы подробно рассказываем о методах именования классов, функций и переменных, которые позволяют улучшить читаемость вашего кода.</strong></p>
2
<p><em>Это перевод статьи<a>A Useful Framework for Naming Your Classes, Functions, and Variables</a></em></p>
2
<p><em>Это перевод статьи<a>A Useful Framework for Naming Your Classes, Functions, and Variables</a></em></p>
3
<p><em>Автор оригинала<a>XOR</a></em></p>
3
<p><em>Автор оригинала<a>XOR</a></em></p>
4
<p>"В компьютерном программировании соглашение об именах - набор правил для выбора последовательности символов, которая будет использоваться для идентификаторов, которые обозначают переменные, типы, функции и другие объекты в исходном коде и документации", -<a>"Википедия"</a></p>
4
<p>"В компьютерном программировании соглашение об именах - набор правил для выбора последовательности символов, которая будет использоваться для идентификаторов, которые обозначают переменные, типы, функции и другие объекты в исходном коде и документации", -<a>"Википедия"</a></p>
5
<p><strong><em>Придумывать названия сложно!</em></strong></p>
5
<p><strong><em>Придумывать названия сложно!</em></strong></p>
6
<p>В этой статье мы сосредоточимся на методе именования (P)A/HC/LC для того, чтобы улучшить читаемость кода. Эти рекомендации можно применить к любому языку программирования, в статье для примеров кода используется JavaScript.</p>
6
<p>В этой статье мы сосредоточимся на методе именования (P)A/HC/LC для того, чтобы улучшить читаемость кода. Эти рекомендации можно применить к любому языку программирования, в статье для примеров кода используется JavaScript.</p>
7
<h2>Содержание</h2>
7
<h2>Содержание</h2>
8
<ul><li><a>Что значит (P)A/HC/LC?</a></li>
8
<ul><li><a>Что значит (P)A/HC/LC?</a></li>
9
<li><a>Что обозначает префикс (P)?</a></li>
9
<li><a>Что обозначает префикс (P)?</a></li>
10
<li><a>Действие - это сердце функции</a></li>
10
<li><a>Действие - это сердце функции</a></li>
11
<li><a>Контекст</a></li>
11
<li><a>Контекст</a></li>
12
<li><a>В итоге</a></li>
12
<li><a>В итоге</a></li>
13
</ul><h2>Что значит (P)A/HC/LC?</h2>
13
</ul><h2>Что значит (P)A/HC/LC?</h2>
14
<p>В этой практике используется следующий шаблон для именования функции:</p>
14
<p>В этой практике используется следующий шаблон для именования функции:</p>
15
<h2>Что обозначает префикс (P)?</h2>
15
<h2>Что обозначает префикс (P)?</h2>
16
<p><em>Префикс</em>расширяет смысл функции.</p>
16
<p><em>Префикс</em>расширяет смысл функции.</p>
17
<ul><li>is Описывает свойство или состояние текущего контекста (обычно - логическое значение).</li>
17
<ul><li>is Описывает свойство или состояние текущего контекста (обычно - логическое значение).</li>
18
</ul><ul><li>has Указывает, имеет ли текущий контекст определенное значение или состояние (обычно - логическое значение).</li>
18
</ul><ul><li>has Указывает, имеет ли текущий контекст определенное значение или состояние (обычно - логическое значение).</li>
19
</ul><ul><li>should Отражает положительный условный оператор (обычно - логическое значение), связанный с определенным действием.</li>
19
</ul><ul><li>should Отражает положительный условный оператор (обычно - логическое значение), связанный с определенным действием.</li>
20
</ul><h2>Действие - это сердце функции</h2>
20
</ul><h2>Действие - это сердце функции</h2>
21
<p><strong>Действие</strong>- это глагольная часть имени функции. Это самая важная часть в описании того, что делает функция.</p>
21
<p><strong>Действие</strong>- это глагольная часть имени функции. Это самая важная часть в описании того, что делает функция.</p>
22
<ul><li>get Получает доступ к данным немедленно (сокращение от getter для внутренних данных).</li>
22
<ul><li>get Получает доступ к данным немедленно (сокращение от getter для внутренних данных).</li>
23
</ul><ul><li>set Безусловно присваивает переменной со значением A значение B.</li>
23
</ul><ul><li>set Безусловно присваивает переменной со значением A значение B.</li>
24
</ul><ul><li>reset Возвращает переменную к её начальному значению или состоянию.</li>
24
</ul><ul><li>reset Возвращает переменную к её начальному значению или состоянию.</li>
25
</ul><ul><li>fetch Выполняет запрос данных, для которого требуется время (например, асинхронный запрос).</li>
25
</ul><ul><li>fetch Выполняет запрос данных, для которого требуется время (например, асинхронный запрос).</li>
26
</ul><ul><li>remove Удаляет что-то откуда-то.</li>
26
</ul><ul><li>remove Удаляет что-то откуда-то.</li>
27
</ul><p>Например, если у вас есть коллекция выбранных фильтров на странице поиска, удаление одного из них из коллекции - это removeFilter, а не deleteFilter (именно так вы и скажете на английском языке):</p>
27
</ul><p>Например, если у вас есть коллекция выбранных фильтров на странице поиска, удаление одного из них из коллекции - это removeFilter, а не deleteFilter (именно так вы и скажете на английском языке):</p>
28
<p>- delete</p>
28
<p>- delete</p>
29
<p>Полностью стирает что-то. После операции сущность перестаёт существовать.</p>
29
<p>Полностью стирает что-то. После операции сущность перестаёт существовать.</p>
30
<p>Представьте, что вы редактор контента, и есть пост, от которого вы хотите избавиться. Как только вы нажали на кнопку delete-post, CMS выполнила действие deletePost, а не removePost.</p>
30
<p>Представьте, что вы редактор контента, и есть пост, от которого вы хотите избавиться. Как только вы нажали на кнопку delete-post, CMS выполнила действие deletePost, а не removePost.</p>
31
<p>- compose</p>
31
<p>- compose</p>
32
<p>Создает новые данные из существующих. Обычно это применимо к строкам, объектам или функциям.</p>
32
<p>Создает новые данные из существующих. Обычно это применимо к строкам, объектам или функциям.</p>
33
<p>- handle</p>
33
<p>- handle</p>
34
<p>Обработка действия. Часто используется при именовании обратного вызова.</p>
34
<p>Обработка действия. Часто используется при именовании обратного вызова.</p>
35
<h2>Контекст</h2>
35
<h2>Контекст</h2>
36
<p><strong>Контекст</strong>- это область, с которой работает функция.</p>
36
<p><strong>Контекст</strong>- это область, с которой работает функция.</p>
37
<p>Функция - это часто действие с чем-то. Важно указать, какова её рабочая область или, по крайней мере, ожидаемый тип данных.</p>
37
<p>Функция - это часто действие с чем-то. Важно указать, какова её рабочая область или, по крайней мере, ожидаемый тип данных.</p>
38
<h2>В итоге</h2>
38
<h2>В итоге</h2>
39
<h3>Пять принципов именования переменных</h3>
39
<h3>Пять принципов именования переменных</h3>
40
<p>В этом разделе мы предложим некоторые правила именования переменных, которые улучшат читаемость кода.</p>
40
<p>В этом разделе мы предложим некоторые правила именования переменных, которые улучшат читаемость кода.</p>
41
<h4>1. Следуйте S-I-D</h4>
41
<h4>1. Следуйте S-I-D</h4>
42
<p>Имя должно быть коротким (<strong>S</strong>hort), интуитивно понятным (<strong>I</strong>ntuitive) и описательным (<strong>D</strong>escriptive).</p>
42
<p>Имя должно быть коротким (<strong>S</strong>hort), интуитивно понятным (<strong>I</strong>ntuitive) и описательным (<strong>D</strong>escriptive).</p>
43
<h4>2. Избегайте сокращений</h4>
43
<h4>2. Избегайте сокращений</h4>
44
<p>Не используйте сокращения. Обычно они только ухудшают читаемость кода. Найти короткое, описательное имя может быть сложно, но сокращения не могут быть оправданием для того, чтобы этого не делать. Например:</p>
44
<p>Не используйте сокращения. Обычно они только ухудшают читаемость кода. Найти короткое, описательное имя может быть сложно, но сокращения не могут быть оправданием для того, чтобы этого не делать. Например:</p>
45
<h4>3. Избегайте дублирования контекста</h4>
45
<h4>3. Избегайте дублирования контекста</h4>
46
<p>Всегда удаляйте контекст из имени, если это не снижает его читабельность.</p>
46
<p>Всегда удаляйте контекст из имени, если это не снижает его читабельность.</p>
47
<h4>4. Отражайте в имени ожидаемый результат</h4>
47
<h4>4. Отражайте в имени ожидаемый результат</h4>
48
<h4>5. Учитывайте единственное/множественное число</h4>
48
<h4>5. Учитывайте единственное/множественное число</h4>
49
<p>Как и префикс, имена переменных могут быть единственного или множественного числа в зависимости от того, имеют ли они одно значение или несколько.</p>
49
<p>Как и префикс, имена переменных могут быть единственного или множественного числа в зависимости от того, имеют ли они одно значение или несколько.</p>
50
<h4>6. Используйте осмысленные и произносимые имена</h4>
50
<h4>6. Используйте осмысленные и произносимые имена</h4>
51
51