Qanday qilib yaxshi kod yozayotganimni bilsam bo’ladi?

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.

qanday qilib yaxshi kod yozayotganimni bilsam boladi 660fd4697151c

1-Javob:
Quyidagi yordamchi savollar bilan aniqlashni odat qilganman:

  1. Agarda kodga qaytib yana bir nimalarni qo’shib-o’zgartirishlar kerak bo’lsa, bu qiyinmi(demak nimadir xato)?
  2. Siz yozilgan, ishlab turgan kodlaringizni buzib boshqa narsalar qo’shishingiz kerekmi?(demak yana o’sha narsa)

2-Javob:

Uchta

oltin qoida bor:

  1. Agarda men ma’lum bir kod bloklarini faqat ko’chirib-qo’yishga(copy/paste) majbur bo’lib qolsam demak nimadirni xato qilyapman.
  2. Agarda yozgan kodimni to’laligicha tassavvur qila olmas ekanman demak nimadir xato.
  3. 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:

  1. Kodlaringiz aqlli tarzda yozilgan bo’lishi kerek, lekin o’ta aqlli holda emas.
  2. Algoritmlar ham tezlik nuqtai nazaridan, ham kodni o’qilishi nuqtai nazaridan yaxshi(optimal) bo’lishi kerak.
  3. Klasslar,
    O’zgaruvchilar, Funktsiyalar bajaradigan vazifasiga qarab to’gri
    nomlangan, ularni nimani bajarishini ko’p o’ylab o’tirish kerak
    bo’lmasligi kerak.
  4. Yozayotgan kodingizni bir haftadan so’ng kelib ham to’g’ridan-to’g’ri qiynalmay davom keta olishingiz kerak.


4-Javob:

  1. 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)
  2. 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?