|
4 | 4 |
|
5 | 5 | Самое важное в программировании — это давать понятные _имена_ идентификаторам (переменным, константам, параметрам, функциям, классам и т.д.) и располагать их в программе так, чтобы они были _видны_ в нужных местах. При этом нужно стараться сократить их _область видимости_. Идентификаторы могут быть глобальными, объявленными внутри файла или импортированными из других модулей программы.
|
6 | 6 |
|
| 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 | + |
7 | 28 | > Объявление и присвоение (assignment)
|
8 | 29 |
|
9 | 30 | ```js
|
|
0 commit comments