Speed vs Correctness
Tezlik va to'g'rilik
Tez ovqat tayyorlaydigan restoranni tasavvur qiling: siz buyurtma berganingizdan ikki daqiqa o'tib burgeringiz stolga keladi — tez, arzon, lekin har safar bir xil mukammallikda emas. Endi Michelin yulduzli restoranni tasavvur qiling: bitta taom qirq daqiqa tayyorlanadi, oshpaz har bir ziravorni, haroratni, taqdimotni tekshiradi. Ikkalasi ham "to'g'ri" restoran — lekin ular ikki xil maqsad uchun optimallashtirilgan. Dasturlashda ham xuddi shunday: har bir vazifa "tezlik" va "to'g'rilik" o'lchovida qayerda turishi kerakligini avval hal qilish kerak.
Muhandislik fikrlash (engineering judgment) — Problem Decomposition kursida siz muammoni kodlashdan oldin bo'laklarga ajratishni o'rgandingiz. Endi keyingi qadam: bo'laklarni QANDAY qurish kerakligini — qanchalik tez, qanchalik puxta — hal qilish. Bu qarorlar Go sintaksisidan mustaqil, lekin tajribali muhandisni boshlang'ichdan ajratib turadigan asosiy ko'nikma.
Ikkita stsenariyni solishtiring. Birinchisi: siz hackathon'da 24 soat ichida g'oyangizni ko'rsatadigan prototip yasayapsiz — hech kim uni production'ga qo'ymaydi, faqat g'oya ishlashini isbotlash kerak. Ikkinchisi: siz bank ilovasida pul o'tkazish funksiyasini yozyapsiz — bir xato millionlab so'm yo'qolishiga yoki ikki marta yechilishiga olib kelishi mumkin. Bu ikki vaziyatda "qanchalik tez yozish kerak" degan savolga javob butunlay boshqacha.
| Savol | Tezlik ustunlik qiladi | To'g'rilik ustunlik qiladi |
|---|---|---|
| Xato qilinsa, narxi qancha? | Arzon — tuzatish oson, hech kim zarar ko'rmaydi | Qimmat — pul, ma'lumot yoki ishonch yo'qoladi |
| Kod qancha muddat yashaydi? | Bir kunlik prototip, keyin tashlanadi | Yillar davomida ishlaydigan asosiy tizim |
| Kim undan foydalanadi? | Faqat siz, ichki demo | Minglab haqiqiy foydalanuvchi |
Bu jadvaldagi mezon — xato narxi (cost of being wrong). Prototipda xato topilsa, uni ko'rib, kulib, qayta yozasiz — hech qanday zarar yo'q. Bank ilovasida xuddi shu xato production'ga chiqib ketsa, uni tuzatish narxi ming barobar oshadi: mijozlarga qo'ng'iroq qilish, pulni qaytarish, ishonchni tiklash kerak bo'ladi. Xato narxi past bo'lgan joyda tezlikni tanlang; xato narxi baland bo'lgan joyda to'g'rilikka vaqt ajrating.
Muhim tushuncha: bu tanlov "yaxshi dasturchi vs yomon dasturchi" emas — bu kontekstga mos strategiya. Xuddi shu odam ertalab prototipni tez-tez, kechqurun to'lov tizimini puxta yozishi mumkin. Muammo — noto'g'ri kontekstda noto'g'ri strategiyani tanlashda: prototipni bank darajasida puxta yozib vaqtni behuda sarflash, yoki to'lov tizimini prototip tezligida yozib xavf ostiga qo'yish.
Key Takeaway
Key Takeaway:
Har bir vazifadan oldin "bu yerda xato qilish narxi qancha?" deb so'rang. Narx past bo'lsa — tezlikka, narx baland bo'lsa — to'g'rilikka ustunlik bering. Ikkalasi ham to'g'ri strategiya, faqat turli vaziyatlar uchun.
NEXT UP
Simplicity vs Flexibility