Skip to content

Commit 4e09c28

Browse files
authored
Examples for good and bad identifier names (#148)
1 parent 5e4fcc5 commit 4e09c28

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

content/ru/2-1-Identifiers.md

+21
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@
44
55
Самое важное в программировании — это давать понятные _имена_ идентификаторам (переменным, константам, параметрам, функциям, классам и т.д.) и располагать их в программе так, чтобы они были _видны_ в нужных местах. При этом нужно стараться сократить их _область видимости_. Идентификаторы могут быть глобальными, объявленными внутри файла или импортированными из других модулей программы.
66

7+
Есть разные конвенции (договоренности) о именовании, традиции языков и парадигм, но во всех них имена должны быть _консистентные_ (однотипные) и _понятные_ даже для тех, кто код этот не писал. Примеры хороших имен идентификаторов:
8+
9+
- Глобальные переменные: `MAX_PURCHASE`, `REQUEST_TIMEOUT`, `ERROR_CODES`
10+
- Коллекции: `prices`, `goods`, `boughtItems`
11+
- Отдельные значения: `amount`, `groupName`, `total`
12+
- Функции: `calculateSubtotal`, `calculateTotal`, `validateExpenses`
13+
14+
Примеры плохих имен рассмотрим подробнее:
15+
- Глобальная константа `Maximum` - не понятно, максимум чего, без второго слова константа не может быть глобальной; нарушены конвенции использования строчных и заглавных букв, вместо `camelCase` тут использован `PascalCase` и такую константу сложно заметить при чтении кода;
16+
- Таймайт запросов `request_timeout` - нарушены конвенции;
17+
- Коды ошибок `ERCODE` - сложно читается; не понятно, что это коллекция кодов, а не один код;
18+
- Массив цен `numbers` - не нужно называть массивы именами типов данных, которые в них находятся, из этого названия очень сложно понять, что там цены;
19+
- Массив товаров `arrayOfGoods` - не добавляйте названия структур данных в имена переменных;
20+
- Слишком длинное имя для коллекции товаров: `orderItemsInShopBasket`;
21+
- Неочевидное сокращение `amt`;
22+
- Кроме явного нарушения конценций `grp_N` еще и вводит в заблуждение, это плохое сокращение, не нужно экономить на буквах до такой степени;
23+
- Не называйте переменные транслитом, как `itogo2` и не используйте цифры для именования переменных с похожим смыслом, попробуйте учесть оттенки смысла, например: `total` и `subtotal`;
24+
- Если структура содержит два значения, как `tolalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`;
25+
- Кроме нарушения конвенций `BuyerCalculatins` еще и очень не точный, не понятно, какие именно вычисления;
26+
- Короткие сокращения типа `VE` - совершенно неприемлимы в качестве имен, если только это не общепринятые `i` и `j` для циклов или, `x` и `y` для координат и еще несколько подобных случаев.
27+
728
> Объявление и присвоение (assignment)
829
930
```js

0 commit comments

Comments
 (0)