diff --git a/content/ru/2-1-Identifiers.md b/content/ru/2-1-Identifiers.md index 8452b60..83327d5 100644 --- a/content/ru/2-1-Identifiers.md +++ b/content/ru/2-1-Identifiers.md @@ -22,7 +22,7 @@ - Неочевидное сокращение `amt`; - Кроме явного нарушения концепций `grp_N` еще и вводит в заблуждение, это плохое сокращение, не нужно экономить на буквах до такой степени; - Не называйте переменные транслитом, как `itogo2` и не используйте цифры для именования переменных с похожим смыслом, попробуйте учесть оттенки смысла, например: `total` и `subtotal`; -- Если структура содержит два значения, как `tolalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`; +- Если структура содержит два значения, как `totalAndSubtotal`, то нужно назвать ее таким словом, которое обобщает их, например `order`; - Кроме нарушения конвенций `BuyerCalculations` еще и очень не точный, не понятно, какие именно вычисления; - Короткие сокращения типа `VE` - совершенно неприемлимы в качестве имен, если только это не общепринятые `i` и `j` для циклов или, `x` и `y` для координат и еще несколько подобных случаев. diff --git a/content/uk/2-1-Identifiers.md b/content/uk/2-1-Identifiers.md index ac10980..f75bd61 100644 --- a/content/uk/2-1-Identifiers.md +++ b/content/uk/2-1-Identifiers.md @@ -1,7 +1,31 @@ ## 2.1. Значення, ідентифікатор, змінна та константа, літерал, присвоєння +> Ідентифікатор (identifier) + Найважливіше у програмуванні — це давати зрозумілі імена ідентифікаторам (змінним, константам, параметрам, функціям, класам і т.д.) і розташовувати їх в програмі так, щоб вони були видні у потрібних місцях. При цьому моємо намагатися скоротити їх область видимості. Ідентифікатори можуть бути глобальними, оголошеними у файлі або імпортованими з інших модулів програми. +Є різні конвенції (домовленості) про іменування, традиції мов і парадигм, але у всіх них імена мають бути _консистентні_ (однотипні) і _зрозумілі_ навіть для тих, хто цей код не писав. Приклади хороших імен ідентифікаторів: + +- Глобальні змінні: `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