Skip to content

Commit bbddd38

Browse files
authored
Sync 2-1 from ru to ukr
1 parent 772b4e9 commit bbddd38

File tree

2 files changed

+25
-1
lines changed

2 files changed

+25
-1
lines changed

content/ru/2-1-Identifiers.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
- Неочевидное сокращение `amt`;
2323
- Кроме явного нарушения концепций `grp_N` еще и вводит в заблуждение, это плохое сокращение, не нужно экономить на буквах до такой степени;
2424
- Не называйте переменные транслитом, как `itogo2` и не используйте цифры для именования переменных с похожим смыслом, попробуйте учесть оттенки смысла, например: `total` и `subtotal`;
25-
- Если структура содержит два значения, как `tolalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`;
25+
- Если структура содержит два значения, как `totalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`;
2626
- Кроме нарушения конвенций `BuyerCalculations` еще и очень не точный, не понятно, какие именно вычисления;
2727
- Короткие сокращения типа `VE` - совершенно неприемлимы в качестве имен, если только это не общепринятые `i` и `j` для циклов или, `x` и `y` для координат и еще несколько подобных случаев.
2828

content/uk/2-1-Identifiers.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
## 2.1. Значення, ідентифікатор, змінна та константа, літерал, присвоєння
22

3+
> Ідентифікатор (identifier)
4+
35
Найважливіше у програмуванні — це давати зрозумілі імена ідентифікаторам (змінним, константам, параметрам, функціям, класам і т.д.) і розташовувати їх в програмі так, щоб вони були видні у потрібних місцях. При цьому моємо намагатися скоротити їх область видимості. Ідентифікатори можуть бути глобальними, оголошеними у файлі або імпортованими з інших модулів програми.
46

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

0 commit comments

Comments
 (0)