Qanday qilib yaxshi kod yozayotganimni bilsam bo’ladi?
Jiddiy savol. Men dasturlashni sevaman. Men yoshligimdan beri tartibsiz
kod yozib kelyapman. Hech qachon profesional darajada kod yozganman deb
o’ylamayman. Bir necha yillar har xil darajadagi mahsulotlar kodlarini
yozdim, masalan bank to’lovlar va hisobotlarni chiqaruvchi maxsus
sistema ishlab chiqdim.
Men dasturlashni yaxshi bilmagandek his qilaman. Lekin albatta yozgan
kodlarim ishlaydi, lekin u yozganlarim toza va tartibliligiga shubham
bor, Men, shu yerdagi(Stackoverflow.com) ko’p savol-javoblarni ko’rib,
yozgan kodlarim yaxshi yozilmaganligiga ishonchim ortdi.
Qanday talablarga javob bera oladigan kodlarni toza kod deb atasak bo’ladi va nimalarga e’tibor beray?
Quyidagi javoblar soddalashtirilgan holda
http://stackoverflow.com saytidan olindi. Bu javoblarni har xil malakaga ega bo’lgan dasturchilar berishgan.
1-Javob:
Quyidagi yordamchi savollar bilan aniqlashni odat qilganman:
- Agarda kodga qaytib yana bir nimalarni qo’shib-o’zgartirishlar kerak bo’lsa, bu qiyinmi(demak nimadir xato)?
- Siz yozilgan, ishlab turgan kodlaringizni buzib boshqa narsalar qo’shishingiz kerekmi?(demak yana o’sha narsa)
2-Javob:
Uchta
oltin qoida bor:
- Agarda men ma’lum bir kod bloklarini faqat ko’chirib-qo’yishga(copy/paste) majbur bo’lib qolsam demak nimadirni xato qilyapman.
- Agarda yozgan kodimni to’laligicha tassavvur qila olmas ekanman demak nimadir xato.
- Agarda kimdir yozgan kodlarim bilan ishlashni boshlab, ular ichida «yo’qolib» qolsa, ya’ni tushunmasa demak nimadir aniq xato.
3-Javob:
Agarda siz yozayotgan kodlar quyidagi shartlarni bajarsa demak u yaxshi:
- Kodlaringiz aqlli tarzda yozilgan bo’lishi kerek, lekin o’ta aqlli holda emas.
- Algoritmlar ham tezlik nuqtai nazaridan, ham kodni o’qilishi nuqtai nazaridan yaxshi(optimal) bo’lishi kerak.
- Klasslar,
O’zgaruvchilar, Funktsiyalar bajaradigan vazifasiga qarab to’gri
nomlangan, ularni nimani bajarishini ko’p o’ylab o’tirish kerak
bo’lmasligi kerak. - Yozayotgan kodingizni bir haftadan so’ng kelib ham to’g’ridan-to’g’ri qiynalmay davom keta olishingiz kerak.
4-Javob:
- Qachonki klasslaringiz aniq bitta maqsadga yo’naltirilgan
g’oya uchun hizmat qilsa, boshqa klasslardan o’zining aniq maqsadi bilan
farqi bo’lishi kod tozaligining bir belgisidir. (Bir xil maqsadga
yo’naltirligan klasslarning ko’payishi katta proyektlarda kodni
boshqarishni qiyinlashtiradi) - Klassdagi funktsiyalar(metodlar)
qisqa bo’lishi kerak — idial holda ko’pi bilan 50 qator, lekin albatta
100 qatordan ko’p bo’lmasligi kerak. Ularning(funktsiyalarning) nomlari
ular nima qilishini aniq va tiniq ifodalashi kerak. Shu bilan birga
funktsiyalar aynan nomlangan maqsadida ishlatilishi kerak. Agarda kod
100 qatordan o’tib ketsa uning ichidan ma’lum bir maqsadga
yo’naltirilganini ajratib alohida metod qilish tavsiya qilinadi.
Umumiy Dasturlash
Qanday qilib yaxshi kod yozayotganimni bilsam bo’ladi?