You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/03-code-quality/04-ninja-code/article.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -47,7 +47,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
47
47
48
48
Коротка змінна зникає в коді, наче ніндзя в лісі. Ніхто не зможе знайти її навіть через "пошук" редактора. І навіть якщо її знайдуть, вони не зможуть "розшифрувати" за що саме відповідають змінні `a` чи `b`.
49
49
50
-
...Але є один виняток із правил. Справжній ніндзя ніколи не використовуватиме `i` як лічильник в циклі `"for"`. Де завгодно, тільки не тут! Озирніться — є багато інших екзотичних літер. Наприклад, `x` або `y`.
50
+
Але є один виняток із правил. Справжній ніндзя ніколи не використовуватиме `i` як лічильник в циклі `"for"`. Де завгодно, тільки не тут! Озирніться — є багато інших екзотичних літер. Наприклад, `x` або `y`.
51
51
52
52
Екзотична змінна в ролі лічильника особливо доречна, коли тіло циклу займає одну-дві сторінки (чим більше, то краще). У такому випадку ті, хто зануриться глибоко в код циклу, не зможуть швидко здогадатись, що змінна `x` насправді є лічильником.
53
53
@@ -77,7 +77,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
77
77
78
78
-**`data` є ідеальним варіантом для імені змінної.** Використовуйте його всюди, де можете. І справді, кожна змінна має *дані*, вірно?
79
79
80
-
...А що робити, якщо ім’я `data` вже зайняте? Спробуйте `value` — воно також універсальне. Врешті-решт, кожна змінна набуває якесь *значення*.
80
+
А що робити, якщо ім’я `data` вже зайняте? Спробуйте `value` — воно також універсальне. Врешті-решт, кожна змінна набуває якесь *значення*.
81
81
82
82
-**Добирайте ім’я змінним згідно з їхнім типом: `str`, `num`...**
83
83
@@ -89,7 +89,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
89
89
90
90
Жодного шансу дізнатися про це без тривалої медитації!
91
91
92
-
-**...Але що робити, коли й такі імена скінчились?** Просто додайте число: `data1, item2, elem5`...
92
+
-**Але що робити, коли й такі імена скінчились?** Просто додайте число: `data1, item2, elem5`...
93
93
94
94
## Перевірка уваги
95
95
@@ -99,7 +99,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
99
99
100
100
Змішуйте їх всюди, де це можливо.
101
101
102
-
Швидко прочитати такий код неможливо. А якщо стався хибодрук... Мммм... Це надовго, час випити чаю.
102
+
Швидко прочитати такий код неможливо. А якщо стався хибодрук... Мммм... Це надовго, час випити саке.
103
103
104
104
105
105
## Хитромудрі синоніми
@@ -116,7 +116,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
116
116
117
117
Домовтесь зі своїми ніндзя-колегами, що якщо Іван починає називати функції, що показують щось, використовуючи `display...`, тоді Петро може використовувати `render..`, а Ганна — `paint...`. Зауважте, наскільки цікавим та різноманітним став код.
118
118
119
-
...А тепер коронний прийом!
119
+
А тепер коронний прийом!
120
120
121
121
Для функцій, у яких дійсно є важливі відмінності, використовуйте однаковий префікс!
122
122
@@ -131,7 +131,7 @@ i = i ? i < 0 ? Math.max(0, len + i) : i : 0;
131
131
потрібно знати межу їх використання.
132
132
```
133
133
134
-
Вводіть нову змінну тільки тоді, коли це вкрай необхідно.
134
+
Створюйте нову змінну тільки тоді, коли це вкрай необхідно.
135
135
136
136
Натомість використовуйте наявні змінні повторно. Просто записуйте в них нові значення.
137
137
@@ -153,7 +153,7 @@ function ninjaFunction(elem) {
153
153
}
154
154
```
155
155
156
-
Колега-програміст, у якого буде бажання використати `elem` у другій частині коду, буде здивований... Тільки під час налагодження, після розбору коду він зрозуміє, що працює з клоном!
156
+
Колега-програміст, у якого буде бажання використати `elem` у другій частині коду, буде здивований... Тільки під час налагодження, після розбору коду, він зрозуміє, що працює з клоном!
157
157
158
158
Таке трапляється доволі часто. Вбивчий прийом, навіть проти досвідчених ніндзь.
159
159
@@ -179,7 +179,7 @@ function ninjaFunction(elem) {
179
179
Той, що перебуває в темряві, побачить все, що перебуває на світлі.
180
180
```
181
181
182
-
Використовуйте ті ж самі імена змінних всередині функцій, що й за її межами. Це просто. Ніяких зусиль для винаходу нових імен.
182
+
Використовуйте ті ж самі імена змінних всередині функцій, що й за її межами. Це просто. Ніяких зусиль для вигадування нових імен.
0 commit comments