Izohlar(Comments)
Kodni tuzish bo'limida ta'kidlanganidek, izohlar bitta satrli (`//`) yoki ko'p satrli (`/* ... */`) bo'lishi mumkin.
Izohlar
Kodni tuzish bo'limida ta'kidlanganidek, izohlar bitta satrli (//
) yoki ko'p satrli (/* ... */
) bo'lishi mumkin.
Biz ularni odatda kod qanday va nima uchun ishlayotganini tushuntirish uchun ishlatamiz.
Dastlab izoh yozish oson tuyuladi, lekin dasturlashni endi o'rganganlar ularni noto'g'ri ishlatishi mumkin.
Yomon izohlar
Yangi boshlovchilar izohlarni "kodingizda nima bo'layotganini" tushuntirish uchun ishlatishga moyil. Masalan:
Lekin yaxshi kodda bunday "tushuntiruvchi" izohlar miqdori minimal bo'lishi kerak. Jiddiy, kodni izohlar bo'lmasdan tushunish oson bo'lishi kerak.
Bunda ajoyib bir qoida mavjud: "Agar kod shunchalik tushunarsiz bo'lsa, uni izoh talab qiladi, ehtimol uni qayta yozish kerak."
Tavsiya: funksiyalarni ajratib oling
Ba'zida kod qismini funksiyaga almashtirish foydali bo'lishi mumkin, masalan:
Buni yaxshiroq variant, isPrime
funksiyasini ajratib oling:
Endi kodni osongina tushunish mumkin. Funksiya o'zi izoh bo'lib qoladi. Bunday kod "o'z-o'zini tushuntiruvchi" kod deyiladi.
Tavsiya: funksiyalar yarating
Agar bizda uzun kod bo'lsa, masalan:
Unda uni funksiyalarga qayta ishlash yaxshiroq bo'lishi mumkin:
Yana bir bor, funksiyalarning o'zi nima sodir bo'layotganini aytadi. Izohlar kerak emas. Shuningdek, kod strukturasini ajratish yaxshiroq, har bir funksiyaning nima qilayotgani, nimani olishi va nimani qaytarishi aniq.
Haqiqiy hayotda "tushuntiruvchi" izohlaridan butunlay qochib bo'lmaydi. Murakkab algoritmlar mavjud. Va optimallashtirish maqsadlari uchun ba'zi aqlli "hiyla" lar mavjud. Lekin umuman olganda, kodni sodda va o'z-o'zini tushuntiruvchi qilib saqlashga harakat qilishimiz kerak.
Yaxshi izohlar
Demak, tushuntiruvchi izohlar odatda yomon. Qanday izohlar yaxshi?
Arxitekturani tavsiflang
Komponentlar qanday ishlashini, ularning o'zaro ta'sirini, turli vaziyatlarda boshqaruv oqimini tasvirlaydigan umumiy tasavvur berish. Qisqasi - kodning umumiy ko'rinishi. UML kabi maxsus til mavjud bo'lib, yuqori darajadagi arxitektura diagrammalarini yaratish uchun ishlatiladi. Bu kodni tushuntirish uchun arziydi.
Funksiya parametrlari va foydalanishni hujjatlashtirish Funksiyani: foydalanish, parametrlar, qaytariladigan qiymatni hujjatlashtirish uchun JSDoc kabi maxsus sintaksis mavjud.
Masalan:
Bunday izohlar funksiyaning maqsadini tushunishga va uning kodini ko'rmasdan to'g'ri foydalanishga imkon beradi.
Aytgancha, ko'plab muharrirlar WebStorm kabi bunday izohlarni tushunadi va ularni avtomatik to'ldirish va ba'zi avtomatik kodni tekshirish uchun ishlatishi mumkin.
Shuningdek, JSDoc 3 kabi vositalar mavjud bo'lib, ular izohlardan HTML-hujjatlarni yaratishi mumkin. JSDoc haqida ko'proq ma'lumotni jsdoc.app saytidan olishingiz mumkin.
Nega bu yechim tanlandi?
Nima yozilganligi muhim. Lekin nima yozilmaganligini tushunish undan ham muhimroq. Nega bu masala aynan shu tarzda hal qilindi? Kod bunga javob bermaydi.
Agar vazifani hal qilishning ko'p usullari bo'lsa, nima uchun aynan shu usul tanlandi? Ayniqsa, bu eng oddiy ko'rinmaydigan bo'lsa.
Bunday izohlar bo'lmasa, quyidagi holat yuzaga kelishi mumkin:
Siz (yoki hamkasbingiz) bir muddat oldin yozilgan kodni ochasiz va "bu kod samarali emas" deb o'ylaysiz. O'zingizni o'ylaysiz: "Men qanday ahmoq bo'lganman, hozir esa qanchalik aqlliman" va "aniqroq va to'g'ri" variantni ishlatib kodni qayta yozasiz. ...Qayta yozish yaxshi niyat edi. Lekin jarayonda "aniqroq" yechim aslida yetarli emasligini tushunasiz. Buni uzoq vaqt oldin sinab ko'rganingizni xira eslaysiz. Siz to'g'ri variantga qaytasiz, lekin vaqt sarflandi. Yechimni tushuntiruvchi izohlar juda muhim. Ular to'g'ri yo'nalishda rivojlanishni davom ettirishga yordam beradi.
Kodning nozik xususiyatlari bormi? Ular qayerda ishlatiladi?
Agar kodda nozik va qarama-qarshi bo'lgan har qanday narsalar bo'lsa, bu izohlarga loyiqdir.
Xulosa
Yaxshi dasturchining muhim belgisi izohlar: ularning mavjudligi va hatto ularning yo'qligi.
Yaxshi izohlar kodni yaxshi saqlashga, bir muddatdan keyin unga qaytishga va undan samarali foydalanishga imkon beradi.
Quyidagilarni izohlang:
Umumiy arxitektura, umumiy ko'rinish. Funksiya foydalanishlari. Muhim yechimlar, ayniqsa darhol ko'rinmaydiganlar. Izohlardan qoching:
Kodni "qanday ishlashini" va "nima qilayotganini" aytadigan izohlar. Agar kodni shu qadar sodda va o'z-o'zini tushuntiruvchi qilish imkoni bo'lmasa, ularni qo'ying. Izohlar, shuningdek, JSDoc3 kabi avtomatik hujjatlashtiruvchi vositalar uchun ishlatiladi: ular ularni o'qib, HTML-hujjatlar (yoki boshqa formatdagi hujjatlar) yaratadi.