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/03-comments/article.md
+7-7Lines changed: 7 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ function showPrimes(n) {
43
43
}
44
44
```
45
45
46
-
Кращим варінтом було б помістити код в окрему функцію `isPrime`:
46
+
Кращим варіантом було б помістити код в окрему функцію `isPrime`:
47
47
48
48
49
49
```js
@@ -90,7 +90,7 @@ for(let t = 0; t < 3; t++) {
90
90
// ...
91
91
```
92
92
93
-
Тоді кращим варінтом буде замінити його на окремі функції:
93
+
Тоді кращим варіантом буде замінити його на окремі функції:
94
94
95
95
```js
96
96
addWhiskey(glass);
@@ -113,14 +113,14 @@ function addJuice(container) {
113
113
114
114
Знову ж таки, ім'я функцій самі описують, що в них відбувається. Немає потреби коментувати такий код. Також кращою є структура коду, коли він розподілений. Стає зрозумілим, що функція робить, що вона приймає і що повертає.
115
115
116
-
Насправді, ми не можемо уникнути повністю "пояснювальних" коментарів. Є складні алгоритми. Також існують деякі "прийоми" для оптимізації. Проте, як правило, ми повинні намагатись залишати код простим та самоописним.
116
+
Насправді ми не можемо уникнути повністю "пояснювальних" коментарів. Є складні алгоритми. Також існують деякі "прийоми" для оптимізації. Проте, як правило, ми повинні намагатись залишати код простим та самоописним.
117
117
118
118
## Хороші коментарі
119
119
120
120
Тож, пояснювальні коментарі зазвичай погані. Які ж тоді хороші?
121
121
122
122
Описуйте архітектуру
123
-
: Додавайте опис компонентів висого рівня, як вони взаємодіють, який потік управління мають у різних обставинах... Якщо коротко - огляд коду з висоту пташиного польоту. Є спеціальна мова [UML](https://uk.wikipedia.org/wiki/Unified_Modeling_Language) для побудови діаграм високорівневої архітектури коду. Її однозначно варто вчити.
123
+
: Додавайте опис компонентів вищого рівня, як вони взаємодіють, який потік управління мають у різних обставинах... Якщо коротко - огляд коду з висоту пташиного польоту. Є спеціальна мова [UML](https://uk.wikipedia.org/wiki/Unified_Modeling_Language) для побудови діаграм високорівневої архітектури коду. Її однозначно варто вчити.
124
124
125
125
Документуйте параметри функції та її використання
126
126
: Існує спеціальний синтаксис [JSDoc](https://uk.wikipedia.org/wiki/JSDoc) для документації функції: її використання, параметри, значення, що повертає.
@@ -148,12 +148,12 @@ function pow(x, n) {
148
148
Чому завдання було вирішено у такий спосіб?
149
149
: Те, що написано є дуже важливим. Проте, те, що *не* написано може бути ще більш важливим, щоб зрозуміти, що саме відбувається. Чому завдання було вирішено саме у такий спосіб? Код не дає відповідь на це питання.
150
150
151
-
Якщо існує декілька способів вирішення завдання, чому саме цей? Особливо, якщо цей спосіб не самий очевидний.
151
+
Якщо існує декілька способів вирішення завдання, чому саме цей? Особливо, якщо цей спосіб не найбільш очевидний.
152
152
153
153
Без таких коментарів можлива наступна ситуація:
154
154
1. Ви (або ваш колега) відкриває код, написаний колись раніше, і бачить, що він "неоптимальний".
155
155
2. Ви думаєте: "Який я був недосвідчений, і наскільки розумнішим я став зараз", і переписуєте код використовуючи "більш очевидний і правильний" варіант.
156
-
3. ...Бажання переписати код було хорошим. Але в процесі ви помічаєте, що "більш очевидне" рішення не є оптимальним. Ви навіть смутно пригадуєте чому воно так, тому що колись давно вже намаглись спробувати такий варіант. Ви вертаєте правильне рішення, проте час було витрачено даремно.
156
+
3. ...Бажання переписати код було хорошим. Але в процесі ви помічаєте, що "більш очевидне" рішення не є оптимальним. Ви навіть смутно пригадуєте чому воно так, тому що колись давно вже намагались спробувати такий варіант. Ви вертаєте правильне рішення, проте час було витрачено даремно.
157
157
158
158
Коментарі, які пояснюють рішення є дуже важливими. Вони допомагають продовжувати розробку правильним шляхом.
159
159
@@ -177,4 +177,4 @@ function pow(x, n) {
177
177
- Які описують, як код працює і що він робить.
178
178
- Пишіть їх тільки у тому випадку, коли не має змоги написати простий та самоописний код, якому пояснення не потрібні.
179
179
180
-
Коментарі також використовуються інструментами для автоматичної генерації документації, наприклад JSDoc3 - вони читають їх та генерують HTML-документи (або документи у іншому форматі).
180
+
Коментарі також використовуються інструментами для автоматичної генерації документації, наприклад JSDoc3 - вони читають їх та генерують HTML-документи (або документи в іншому форматі).
0 commit comments