Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync 2-1 from ru to ukr #187

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion content/ru/2-1-Identifiers.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
- Неочевидное сокращение `amt`;
- Кроме явного нарушения концепций `grp_N` еще и вводит в заблуждение, это плохое сокращение, не нужно экономить на буквах до такой степени;
- Не называйте переменные транслитом, как `itogo2` и не используйте цифры для именования переменных с похожим смыслом, попробуйте учесть оттенки смысла, например: `total` и `subtotal`;
- Если структура содержит два значения, как `tolalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`;
- Если структура содержит два значения, как `totalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`;
- Кроме нарушения конвенций `BuyerCalculations` еще и очень не точный, не понятно, какие именно вычисления;
- Короткие сокращения типа `VE` - совершенно неприемлимы в качестве имен, если только это не общепринятые `i` и `j` для циклов или, `x` и `y` для координат и еще несколько подобных случаев.

Expand Down
24 changes: 24 additions & 0 deletions content/uk/2-1-Identifiers.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,31 @@
## 2.1. Значення, ідентифікатор, змінна та константа, літерал, присвоєння

> Ідентифікатор (identifier)

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

Є різні конвенції (домовленості) про іменування, традиції мов і парадигм, але у всіх них імена мають бути _консистентні_ (однотипні) і _зрозумілі_ навіть для тих, хто цей код не писав. Приклади хороших імен ідентифікаторів:

- Глобальні змінні: `MAX_PURCHASE`, `REQUEST_TIMEOUT`, `ERROR_CODES`
- Колекції: `prices`, `goods`, `boughtItems`
- Окремі значення: `amount`, `groupName`, `total`
- Функції: `calculateSubtotal`, `calculateTotal`, `validateExpenses`
Comment on lines +9 to +12
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tshemsedinov I believe we are missing ; (semi-colon) at the end of every example, aren't we? Should I add semi-colon both to UA/RU versions?

Suggested change
- Глобальні змінні: `MAX_PURCHASE`, `REQUEST_TIMEOUT`, `ERROR_CODES`
- Колекції: `prices`, `goods`, `boughtItems`
- Окремі значення: `amount`, `groupName`, `total`
- Функції: `calculateSubtotal`, `calculateTotal`, `validateExpenses`
- Глобальні змінні: `MAX_PURCHASE`, `REQUEST_TIMEOUT`, `ERROR_CODES`;
- Колекції: `prices`, `goods`, `boughtItems`;
- Окремі значення: `amount`, `groupName`, `total`;
- Функції: `calculateSubtotal`, `calculateTotal`, `validateExpenses`;


Приклади поганих імен розглянемо докладніше:

- Глобальна константа `Maximum` - не зрозуміло, максимум чого, без другого слова константа не може бути глобальною; порушені конвенції використання малих і великих букв, замість `camelCase` тут використаний `PascalCase` і таку константу складно помітити при читанні коду;
- Таймаут запитів `request_timeout` - порушені конвенції;
- Коди помилок `ERCODE` - складно читається; незрозуміло, що це колекція кодів, а не один код;
- Масив цін `numbers` - не потрібно називати масиви іменами типів даних, які в них знаходяться, з цієї назви дуже складно зрозуміти, що там ціни;
- Масив товарів `arrayOfGoods` - не додавайте назви структур даних до імен змінних;
- Надто довге ім'я для колекції товарів: `orderItemsInShopBasket`;
- Неочевидне скорочення `amt`;
- Крім явного порушення концепцій `grp_N` ще й вводить в оману, це погане скорочення, не потрібно заощаджувати на літерах до такого ступеня;
- Не називайте змінні транслітом, як `itogo2` і не використовуйте цифри для іменування змінних зі схожим змістом, спробуйте врахувати відтінки сенсу, наприклад: `total` та `subtotal`;
- Якщо структура містить два значення, як `totalAndSubtotal`, то потрібно назвати її таким словом, яке узагальнює їх, наприклад `order`;
- Крім порушення конвенцій `BuyerCalculations` ще й дуже не точний, не зрозуміло, які саме обчислення;
- Короткі скорочення типу `VE` - абсолютно неприйнятні як імена, якщо тільки це не загальноприйняті `i` та `j` для циклів або, `x` і `y` для координат і ще кілька подібних випадків.

> Оголошення та присвоєння (assignment)

```js
Expand Down