Сборка от 17 марта 2017 г



Download 9,9 Mb.
bet79/349
Sana26.04.2022
Hajmi9,9 Mb.
#582433
TuriУчебник
1   ...   75   76   77   78   79   80   81   82   ...   349
Bog'liq
ilja kantor sovremennyj uchebnik-1chast PdfToWord

Плохие комментарии


В коде нужны комментарии.


Сразу начну с того, каких комментариев быть почти не должно.




Должен быть минимум комментариев, которые отвечают на вопрос «что происходит в коде?»

Что интересно, в коде начинающих разработчиков обычно комментариев либо нет, либо они как раз такого типа: «что делается в этих строках». Серьёзно, хороший код и так понятен.


Об этом замечательно выразился Р.Мартин в книге «Чистый код» : «Если вам кажется, что нужно добавить комментарий для улучшения понимания, это значит, что ваш код недостаточно прост, и, может, стоит переписать его».
Если у вас образовалась длинная «простыня», то, возможно, стоит разбить её на отдельные функции, и тогда из их названий будет понятно, что делает тот или иной фрагмент.
Да, конечно, бывают сложные алгоритмы, хитрые решения для оптимизации, поэтому нельзя такие комментарии просто запретить. Но перед тем, как писать подобное – подумайте: «Нельзя ли сделать код понятным и без них?»


Хорошие комментарии


А какие комментарии полезны и приветствуются?




  • Архитектурный комментарий – «как оно, вообще, устроено».

Какие компоненты есть, какие технологии использованы, поток взаимодействия. О чём и зачем этот скрипт. Взгляд с высоты птичьего полёта. Эти комментарии особенно нужны, если вы не один, а проект большой.


Для описания архитектуры, кстати, создан специальный язык UML , красивые диаграммы, но можно и без этого. Главное – чтобы понятно.


  • Справочный комментарий перед функцией – о том, что именно она делает, какие параметры принимает и что возвращает.

Для таких комментариев существует синтаксис JSDoc .


/**


  • Возвращает x в степени n, только для натуральных n

*

  • @param {number} x Число для возведения в степень.

  • @param {number} n Показатель степени, натуральное число.

  • @return {number} x в степени n.

*/
function pow(x, n) {
...
}

Такие комментарии позволяют сразу понять, что принимает и что делает функция, не вникая в код.


Кстати, они автоматически обрабатываются многими редакторами, например Aptana и редакторами от JetBrains , которые учитывают их при автодополнении, а также выводят их в автоподсказках при наборе кода.


Кроме того, есть инструменты, например JSDoc 3 , которые умеют генерировать по таким комментариям документацию в формате HTML. Более подробную информацию об этом можно также найти на сайте http://usejsdoc.org/ .


… Но куда более важными могут быть комментарии, которые объясняют не что, а почему в коде происходит именно это!

Как правило, из кода можно понять, что он делает. Бывает, конечно, всякое, но, в конце концов, вы этот код видите. Однако гораздо важнее может быть то, чего вы не видите!


Почему это сделано именно так? На это сам код ответа не даёт. Например:
Есть несколько способов решения задачи. Почему выбран именно этот?

Например, пробовали решить задачу по‑другому, но не получилось – напишите об этом. Почему вы выбрали именно этот способ решения? Особенно это важно в тех случаях, когда используется не первый приходящий в голову способ, а какой‑то другой.
Без этого возможна, например, такая ситуация:



  • Вы открываете код, который был написан какое‑то время назад, и видите, что он «неоптимален».




  • Думаете: «Какой я был дурак», и переписываете под «более очевидный и правильный» вариант.




  • …Порыв, конечно, хороший, да только этот вариант вы уже обдумали раньше. И отказались, а почему – забыли. В процессе переписывания вспомнили, конечно (к счастью), но результат – потеря времени на повторное обдумывание.

Комментарии, которые объясняют выбор решения, очень важны. Они помогают понять происходящее и предпринять правильные шаги при развитии кода.


Какие неочевидные возможности обеспечивает этот код? Где ещё они используются?

В хорошем коде должно быть минимум неочевидного. Но там, где это есть – пожалуйста, комментируйте.




Download 9,9 Mb.

Do'stlaringiz bilan baham:
1   ...   75   76   77   78   79   80   81   82   ...   349




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish