GoDasturchi
Reading for Intent vs. Reading for Correctness

Reading for Intent vs. Reading for Correctness

Niyatni o'qish va to'g'rilikni o'qish

Muharrirni tasavvur qiling: unga yozuvchi maqola topshiradi. Muharrir buni ikki xil ko'z bilan o'qishi mumkin. Birinchi o'qishda — grammatika, imlo, vergul qo'yilishi to'g'rimi? Bu — TO'G'RILIK. Ikkinchi o'qishda esa — yozuvchi AYNAN nima demoqchi bo'lgan, va matn shu fikrni chindan ham yetkazyaptimi? Bu — NIYAT. Bir maqola grammatik jihatdan MUKAMMAL bo'lishi mumkin, lekin yozuvchi aytmoqchi bo'lgan fikrni umuman yetkazmasligi mumkin — yoki aksincha.

Systematic Debugging kursida siz allaqachon yozilgan koddagi xatoni QIDIRISHNI o'rgandingiz. Endi teskari yo'nalishga — hali sizga ma'lum bo'lmagan, boshqa birov yozgan kodni ko'rib chiqish (review) ga o'tamiz. Bu — dasturchining kundalik ishining katta qismi: har bir yangi funksiya avval SIZNING ko'zingizdan o'tadi, keyin production'ga chiqadi.

Kod ko'rib chiqishda ham xuddi shu ikki o'qish kerak. To'g'rilik uchun o'qish — kod yozilgan holatda ishlaydimi? Sintaksis xatosi yo'qmi, chegara holatlar (edge case) hisobga olinganmi, nil qiymatlar tekshirilganmi? Niyat uchun o'qish — bu kod HAQIQATAN nima qilishi kerak edi, va yozilgan kod O'SHA maqsadga xizmat qilyaptimi, yoki boshqa, biroz boshqacha narsa qilyaptimi?

Savol turiMisol
To'g'rilikBu funksiya bo'sh ro'yxat berilganda panic qilmaydimi?
NiyatDiff sarlavhasida "faqat faol foydalanuvchilarni qaytarish" deyilgan, lekin kod BARCHA foydalanuvchilarni qaytaryapti — bu funksiya to'g'ri ishlaydi, lekin NOTO'G'RI narsani qiladi

Ko'p yangi ko'rib chiquvchi faqat TO'G'RILIKKA e'tibor beradi — chunki uni tekshirish osonroq, kodning o'zida ko'rinadi. Niyatni tekshirish uchun esa avval muammoni (nima uchun bu o'zgarish qilinayotganini — Problem Decomposition kursida ko'rgan "muammoni o'z so'zi bilan qayta aytish" kabi) tushunish, so'ngra kodni O'SHA muammoga solishtirib ko'rish kerak.

Amaliy odat: diff'ni ko'rib chiqishdan oldin, uning tavsifini (PR description, ticket) o'qing va o'zingizga savol bering: "agar men bu vazifani bajarsam, men NIMA qilgan bo'lardim?" So'ngra kodni o'qing va solishtiring: kod sizning kutganingiz bilan mos keladimi, yoki boshqa, kutilmagan yo'l tanlaganmi? Ikkalasi ham to'g'ri bo'lishi mumkin, lekin farqni bilish — chuqur ko'rib chiqishning boshlanishi.

Key Takeaway

Key Takeaway:

Kodni ikki xil ko'z bilan o'qing: to'g'rilik uchun (yozilgan holatda ishlaydimi) va niyat uchun (bu HAQIQATAN kerakli muammoni hal qilyaptimi). Mukammal ishlaydigan kod ham noto'g'ri muammoni hal qilishi mumkin.

NEXT UP

Five Things Every Diff Should Be Checked For

Reading for Intent vs. Reading for Correctness

Niyatni o'qish va to'g'rilikni o'qish

Muharrirni tasavvur qiling: unga yozuvchi maqola topshiradi. Muharrir buni ikki xil ko'z bilan o'qishi mumkin. Birinchi o'qishda — grammatika, imlo, vergul qo'yilishi to'g'rimi? Bu — TO'G'RILIK. Ikkinchi o'qishda esa — yozuvchi AYNAN nima demoqchi bo'lgan, va matn shu fikrni chindan ham yetkazyaptimi? Bu — NIYAT. Bir maqola grammatik jihatdan MUKAMMAL bo'lishi mumkin, lekin yozuvchi aytmoqchi bo'lgan fikrni umuman yetkazmasligi mumkin — yoki aksincha.

Systematic Debugging kursida siz allaqachon yozilgan koddagi xatoni QIDIRISHNI o'rgandingiz. Endi teskari yo'nalishga — hali sizga ma'lum bo'lmagan, boshqa birov yozgan kodni ko'rib chiqish (review) ga o'tamiz. Bu — dasturchining kundalik ishining katta qismi: har bir yangi funksiya avval SIZNING ko'zingizdan o'tadi, keyin production'ga chiqadi.

Kod ko'rib chiqishda ham xuddi shu ikki o'qish kerak. To'g'rilik uchun o'qish — kod yozilgan holatda ishlaydimi? Sintaksis xatosi yo'qmi, chegara holatlar (edge case) hisobga olinganmi, nil qiymatlar tekshirilganmi? Niyat uchun o'qish — bu kod HAQIQATAN nima qilishi kerak edi, va yozilgan kod O'SHA maqsadga xizmat qilyaptimi, yoki boshqa, biroz boshqacha narsa qilyaptimi?

Savol turiMisol
To'g'rilikBu funksiya bo'sh ro'yxat berilganda panic qilmaydimi?
NiyatDiff sarlavhasida "faqat faol foydalanuvchilarni qaytarish" deyilgan, lekin kod BARCHA foydalanuvchilarni qaytaryapti — bu funksiya to'g'ri ishlaydi, lekin NOTO'G'RI narsani qiladi

Ko'p yangi ko'rib chiquvchi faqat TO'G'RILIKKA e'tibor beradi — chunki uni tekshirish osonroq, kodning o'zida ko'rinadi. Niyatni tekshirish uchun esa avval muammoni (nima uchun bu o'zgarish qilinayotganini — Problem Decomposition kursida ko'rgan "muammoni o'z so'zi bilan qayta aytish" kabi) tushunish, so'ngra kodni O'SHA muammoga solishtirib ko'rish kerak.

Amaliy odat: diff'ni ko'rib chiqishdan oldin, uning tavsifini (PR description, ticket) o'qing va o'zingizga savol bering: "agar men bu vazifani bajarsam, men NIMA qilgan bo'lardim?" So'ngra kodni o'qing va solishtiring: kod sizning kutganingiz bilan mos keladimi, yoki boshqa, kutilmagan yo'l tanlaganmi? Ikkalasi ham to'g'ri bo'lishi mumkin, lekin farqni bilish — chuqur ko'rib chiqishning boshlanishi.

Key Takeaway

Key Takeaway:

Kodni ikki xil ko'z bilan o'qing: to'g'rilik uchun (yozilgan holatda ishlaydimi) va niyat uchun (bu HAQIQATAN kerakli muammoni hal qilyaptimi). Mukammal ishlaydigan kod ham noto'g'ri muammoni hal qilishi mumkin.

NEXT UP

Five Things Every Diff Should Be Checked For