O‘zgarish saqlandi. Ekranda esa eski ma’lumot.
Profil nomini almashtirdingiz. Saqlandi. Lekin sahifada hali ham eski nom turibdi.
Shu payt darrov «kesh ekan» deb xulosa qilishga shoshilmang.
Avval tekshiring:
— yangi so‘rov yuborildimi;
— javobning o‘zida yangi ma’lumot bormi;
— interfeys kelgan javobni ko‘rsatyaptimi?
Kesh ham tekshiriladigan sabablardan biri. U oldin olingan javobni saqlab, keyin qayta ishlatishi mumkin.
Muammo qaysi bosqichda ekanini bilsangiz, tuzatish ham aniqroq bo‘ladi: ma’lumotni qayta olish kerakmi yoki ekrandagi holatni yangilashmi?
Sahifani yangilagandan keyin to‘g‘ri ko‘ringani sabab ham topildi degani emas. Qayerda eski ma’lumot qolganini aniqlang.
Profil nomini almashtirdingiz. Saqlandi. Lekin sahifada hali ham eski nom turibdi.
Shu payt darrov «kesh ekan» deb xulosa qilishga shoshilmang.
Avval tekshiring:
— yangi so‘rov yuborildimi;
— javobning o‘zida yangi ma’lumot bormi;
— interfeys kelgan javobni ko‘rsatyaptimi?
Kesh ham tekshiriladigan sabablardan biri. U oldin olingan javobni saqlab, keyin qayta ishlatishi mumkin.
Muammo qaysi bosqichda ekanini bilsangiz, tuzatish ham aniqroq bo‘ladi: ma’lumotni qayta olish kerakmi yoki ekrandagi holatni yangilashmi?
Sahifani yangilagandan keyin to‘g‘ri ko‘ringani sabab ham topildi degani emas. Qayerda eski ma’lumot qolganini aniqlang.
❤3👍2👏2🔥1
Sayt sekin. Lekin qaysi qismi?
«Kodni optimizatsiya qilish kerak» degan gapdan oldin bitta savol bor: vaqt qayerga ketyapti?
Server javobi kechikyaptimi? Rasmlar kattami? Yoki ma’lumot kelganidan keyin sahifa uni ko‘rsatishga ko‘p vaqt sarflayaptimi?
Avval bitta takrorlanadigan holatni tanlang. Masalan, mahsulotlar sahifasini ochish.
So‘rovlar qancha davom etayotganini, nima yuklanayotganini va ekranda natija qachon paydo bo‘lishini kuzating. Keyin aniqlangan muammoga tegishli o‘zgarishni qiling.
So‘ng imkon qadar bir xil sharoitda yana o‘lchang.
«Tezlashgandek» degan taassurotdan tashqari, solishtirish uchun natijangiz ham bo‘ladi. Qaysi o‘zgarish foyda berganini bilib ishlash qulayroq.
«Kodni optimizatsiya qilish kerak» degan gapdan oldin bitta savol bor: vaqt qayerga ketyapti?
Server javobi kechikyaptimi? Rasmlar kattami? Yoki ma’lumot kelganidan keyin sahifa uni ko‘rsatishga ko‘p vaqt sarflayaptimi?
Avval bitta takrorlanadigan holatni tanlang. Masalan, mahsulotlar sahifasini ochish.
So‘rovlar qancha davom etayotganini, nima yuklanayotganini va ekranda natija qachon paydo bo‘lishini kuzating. Keyin aniqlangan muammoga tegishli o‘zgarishni qiling.
So‘ng imkon qadar bir xil sharoitda yana o‘lchang.
«Tezlashgandek» degan taassurotdan tashqari, solishtirish uchun natijangiz ham bo‘ladi. Qaysi o‘zgarish foyda berganini bilib ishlash qulayroq.
🔥3❤2👍2👏1
Loyihani ochdim. Endi uni qanday ishga tushiraman?
Fayllar bor. Kod bor. Lekin qayerdan boshlash noma’lum.
Yangi odam loyihangizni ochganda shunday holatga tushmasligi uchun README’ga ozgina vaqt ajrating.
Unda quyidagilar bo‘lsa, yaxshi boshlanish:
— loyiha nima qiladi;
— ishlatish uchun nimalar kerak;
— qanday sozlanadi va ishga tushiriladi;
— ishga tushganda qanday natija ko‘rinadi.
Kerakli sozlamalarni misol bilan ko‘rsating. Maxfiy kalitlar o‘rniga namuna qiymatlar yozing.
Keyin o‘zingiz shu yo‘riqnoma bo‘yicha boshidan yurib ko‘ring. Biror qadamni «buni bilishadi-ku» deb tashlab ketmadingizmi?
Bugun tushunarli bo‘lgan loyiha bir necha oydan keyin o‘zingizga ham begona ko‘rinishi mumkin 🙂
Fayllar bor. Kod bor. Lekin qayerdan boshlash noma’lum.
Yangi odam loyihangizni ochganda shunday holatga tushmasligi uchun README’ga ozgina vaqt ajrating.
Unda quyidagilar bo‘lsa, yaxshi boshlanish:
— loyiha nima qiladi;
— ishlatish uchun nimalar kerak;
— qanday sozlanadi va ishga tushiriladi;
— ishga tushganda qanday natija ko‘rinadi.
Kerakli sozlamalarni misol bilan ko‘rsating. Maxfiy kalitlar o‘rniga namuna qiymatlar yozing.
Keyin o‘zingiz shu yo‘riqnoma bo‘yicha boshidan yurib ko‘ring. Biror qadamni «buni bilishadi-ku» deb tashlab ketmadingizmi?
Bugun tushunarli bo‘lgan loyiha bir necha oydan keyin o‘zingizga ham begona ko‘rinishi mumkin 🙂
🔥2❤1👍1👏1
Brauzer oynasini sekin kichraytirib ko‘ring.
Sahifa katta monitorda chiroyli. Telefonda ham joyida. Lekin shu ikkisining orasidagi o‘lchamlar-chi?
Oynani asta toraytirib ko‘ring. Bir joyda sarlavha tugmaning ustiga chiqishi, menyu sig‘may qolishi yoki rasm matnni siqib qo‘yishi mumkin.
Ayniqsa, uzun sarlavha va kartochkalar bor qismlarga qarang. Qisqa namunaviy matn bilan yaxshi turgan joy haqiqiy kontent kelganda buzilishi mumkin.
Elementlar qachon yonma-yon, qachon ustma-ust turishini tekshiring.
Asosiy savol oddiy: shu o‘lchamda odam kerakli ma’lumotni o‘qib, tugmani bemalol bosa olyaptimi?
Faqat ikkita tayyor ekran o‘lchami bilan cheklanib qolmang.
Sahifa katta monitorda chiroyli. Telefonda ham joyida. Lekin shu ikkisining orasidagi o‘lchamlar-chi?
Oynani asta toraytirib ko‘ring. Bir joyda sarlavha tugmaning ustiga chiqishi, menyu sig‘may qolishi yoki rasm matnni siqib qo‘yishi mumkin.
Ayniqsa, uzun sarlavha va kartochkalar bor qismlarga qarang. Qisqa namunaviy matn bilan yaxshi turgan joy haqiqiy kontent kelganda buzilishi mumkin.
Elementlar qachon yonma-yon, qachon ustma-ust turishini tekshiring.
Asosiy savol oddiy: shu o‘lchamda odam kerakli ma’lumotni o‘qib, tugmani bemalol bosa olyaptimi?
Faqat ikkita tayyor ekran o‘lchami bilan cheklanib qolmang.
🔥3👍2👏2❤1
Code review’da aynan nimani o‘zgartirish kerakligini ayting.
«Bu joyi yoqmadi» degan izohdan keyin muallif nima qilishni taxmin qilib o‘tiradi.
Aniqroq yozish mumkin:
«Bu vazifada chegirma faqat mahsulotlarga tegishli. Hozir yetkazib berish narxi ham kamayib ketyapti. Hisobni ajratsak, kutilgan natija chiqadi».
Bu yerda muammo, uning ta’siri va taklif bor.
Yana bir odat: shaxsiy didingizni zarur tuzatishdan ajrating. Kodni boshqacha yozishni yoqtirishingiz bilan unda noto‘g‘ri natija chiqishi turli masalalar.
Muallifning niyatini taxmin qilish o‘rniga, kodning natijasini muhokama qiling.
Hurmat bilan yozilgan aniq izohdan keyin ishni davom ettirish osonroq bo‘ladi.
«Bu joyi yoqmadi» degan izohdan keyin muallif nima qilishni taxmin qilib o‘tiradi.
Aniqroq yozish mumkin:
«Bu vazifada chegirma faqat mahsulotlarga tegishli. Hozir yetkazib berish narxi ham kamayib ketyapti. Hisobni ajratsak, kutilgan natija chiqadi».
Bu yerda muammo, uning ta’siri va taklif bor.
Yana bir odat: shaxsiy didingizni zarur tuzatishdan ajrating. Kodni boshqacha yozishni yoqtirishingiz bilan unda noto‘g‘ri natija chiqishi turli masalalar.
Muallifning niyatini taxmin qilish o‘rniga, kodning natijasini muhokama qiling.
Hurmat bilan yozilgan aniq izohdan keyin ishni davom ettirish osonroq bo‘ladi.
👍3❤2🔥2👏1
Yig‘ilish tugadi. Qaror qayerga yozildi?
Hamma bosh irg‘adi, suhbat tugadi. Ertasi kuni esa kimdir bir narsani, boshqasi boshqa narsani eslayapti.
Shuning uchun uchta narsani yozib qo‘yish foydali: nimaga kelishildi, nega shu yo‘l tanlandi, keyingi qadam kimda.
Masalan:
— Qaror: buyurtma holatlari bitta umumiy ro‘yxatdan olinadi.
— Sabab: turli sahifalarda holat nomlari farq qilmasin.
— Keyingi qadam: bir kishi ro‘yxatni tayyorlaydi, ikkinchisi sahifalarda tekshiradi; yozuvda ularning ismi ko‘rsatiladi.
Butun suhbatni ko‘chirib yozish shart emas. Ishni davom ettirishga kerakli qismini saqlang.
Yozuvni qatnashchilarga ulashing. Turlicha tushunilgan joylar bo‘lsa, ertaroq aniqlanadi.
Hamma bosh irg‘adi, suhbat tugadi. Ertasi kuni esa kimdir bir narsani, boshqasi boshqa narsani eslayapti.
Shuning uchun uchta narsani yozib qo‘yish foydali: nimaga kelishildi, nega shu yo‘l tanlandi, keyingi qadam kimda.
Masalan:
— Qaror: buyurtma holatlari bitta umumiy ro‘yxatdan olinadi.
— Sabab: turli sahifalarda holat nomlari farq qilmasin.
— Keyingi qadam: bir kishi ro‘yxatni tayyorlaydi, ikkinchisi sahifalarda tekshiradi; yozuvda ularning ismi ko‘rsatiladi.
Butun suhbatni ko‘chirib yozish shart emas. Ishni davom ettirishga kerakli qismini saqlang.
Yozuvni qatnashchilarga ulashing. Turlicha tushunilgan joylar bo‘lsa, ertaroq aniqlanadi.
🔥3❤2👍2👏1
Sichqonchani bir daqiqaga chetga suring.
Saytingizdagi formani faqat klaviatura bilan to‘ldirib ko‘ring. Tab bilan oldinga, Shift + Tab bilan ortga o‘ting. Tugmaga kelganda Enter bilan faollashtirib ko‘ring.
Qaysi elementda turganingiz ko‘rinib turibdimi? O‘tish tartibi mantiqlimi? Ochilgan menyudan chiqish mumkinmi?
Fokus ko‘rinmasa, odam hozir qaysi elementni boshqarayotganini taxmin qilishga majbur bo‘ladi.
Ism yozishdan boshlab yuborish tugmasigacha yetib boring. Yo‘lda sichqonchani olishga majbur bo‘lgan joylaringizni belgilab qo‘ying.
Bu kichik mashq klaviaturadan foydalanishdagi to‘siqlarni topishga yordam beradi. Tuzatgach, o‘sha yo‘lni yana tekshirib chiqing.
Saytingizdagi formani faqat klaviatura bilan to‘ldirib ko‘ring. Tab bilan oldinga, Shift + Tab bilan ortga o‘ting. Tugmaga kelganda Enter bilan faollashtirib ko‘ring.
Qaysi elementda turganingiz ko‘rinib turibdimi? O‘tish tartibi mantiqlimi? Ochilgan menyudan chiqish mumkinmi?
Fokus ko‘rinmasa, odam hozir qaysi elementni boshqarayotganini taxmin qilishga majbur bo‘ladi.
Ism yozishdan boshlab yuborish tugmasigacha yetib boring. Yo‘lda sichqonchani olishga majbur bo‘lgan joylaringizni belgilab qo‘ying.
Bu kichik mashq klaviaturadan foydalanishdagi to‘siqlarni topishga yordam beradi. Tuzatgach, o‘sha yo‘lni yana tekshirib chiqing.
❤2👍2🔥2👏2
Texnik qarorni mijozga natijasi orqali tushuntiring.
«Rasmlarni optimizatsiya qilamiz» degan gap sizga tushunarli. Mijoz esa bundan nima o‘zgarishini bilmasligi mumkin.
Shunday tushuntirib ko‘ring:
«Mahsulotlar ro‘yxatida hajmi kichikroq rasmlarni ko‘rsatamiz. Sahifa dastlab kamroq ma’lumot yuklaydi. Xaridor detallarni ko‘rmoqchi bo‘lsa, rasmni bosib kattasini ochadi».
Endi tanlov tushunarli: dastlab yengilroq sahifa, batafsil ko‘rish uchun esa qo‘shimcha bosish.
Texnik taklifingizni uch qismda ayting:
— nima o‘zgaradi;
— foydalanuvchiga qanday foydasi bor;
— qanday cheklov yoki qo‘shimcha qadam paydo bo‘ladi.
Shunda mijoz qarorni tushunib muhokama qila oladi.
«Rasmlarni optimizatsiya qilamiz» degan gap sizga tushunarli. Mijoz esa bundan nima o‘zgarishini bilmasligi mumkin.
Shunday tushuntirib ko‘ring:
«Mahsulotlar ro‘yxatida hajmi kichikroq rasmlarni ko‘rsatamiz. Sahifa dastlab kamroq ma’lumot yuklaydi. Xaridor detallarni ko‘rmoqchi bo‘lsa, rasmni bosib kattasini ochadi».
Endi tanlov tushunarli: dastlab yengilroq sahifa, batafsil ko‘rish uchun esa qo‘shimcha bosish.
Texnik taklifingizni uch qismda ayting:
— nima o‘zgaradi;
— foydalanuvchiga qanday foydasi bor;
— qanday cheklov yoki qo‘shimcha qadam paydo bo‘ladi.
Shunda mijoz qarorni tushunib muhokama qila oladi.
👍3❤2🔥2👏1
«Ertaga soat 10:00» — qaysi vaqt bo‘yicha?
Uchrashuv vaqtini saqlash oddiy ko‘rinadi: sana va soatni yozamiz, bo‘ldi.
Lekin foydalanuvchilar turli vaqt mintaqalarida bo‘lsa, shu yozuvni aniqlashtirish kerak bo‘ladi. Bir odam uchun soat 10:00 bo‘lgan payt boshqasida boshqa vaqt bo‘lishi mumkin.
Uchrashuvning aniq paytini saqlashda vaqt mintaqasi yoki UTC siljishini hisobga oling. Ko‘rsatishda ham qaysi mintaqa ishlatilayotganini tushunarli qiling.
Tug‘ilgan sana kabi ma’lumotlarda esa soatning o‘zi kerak bo‘lmasligi mumkin. Uni vaqt mintaqalari orasida aylantirish sanani siljitib yuborishi mumkin.
Sana bilan ishlashni boshlashdan oldin aniqlang: bu kalendardagi kunmi yoki aniq bir paytmi?
Uchrashuv vaqtini saqlash oddiy ko‘rinadi: sana va soatni yozamiz, bo‘ldi.
Lekin foydalanuvchilar turli vaqt mintaqalarida bo‘lsa, shu yozuvni aniqlashtirish kerak bo‘ladi. Bir odam uchun soat 10:00 bo‘lgan payt boshqasida boshqa vaqt bo‘lishi mumkin.
Uchrashuvning aniq paytini saqlashda vaqt mintaqasi yoki UTC siljishini hisobga oling. Ko‘rsatishda ham qaysi mintaqa ishlatilayotganini tushunarli qiling.
Tug‘ilgan sana kabi ma’lumotlarda esa soatning o‘zi kerak bo‘lmasligi mumkin. Uni vaqt mintaqalari orasida aylantirish sanani siljitib yuborishi mumkin.
Sana bilan ishlashni boshlashdan oldin aniqlang: bu kalendardagi kunmi yoki aniq bir paytmi?
👍3❤🔥2❤2😨2
Frontendga yuborilgan maxfiy kalit yashirin qolmaydi.
API kalitini .env fayliga yozdingiz. Endi xavfsizmi?
Muhimi, keyin bu qiymat qayerga borishi. Agar u brauzerga yuboriladigan kod ichiga qo‘shilsa, foydalanuvchi uni ko‘rishi mumkin.
Fayl nomi yoki kodning chalkashtirilgani kalitni maxfiy qilib qo‘ymaydi.
Maxfiy kalit talab qiladigan so‘rovni ishonchli server qismida bajaring. Brauzerga esa foydalanuvchiga kerakli natijani qaytaring.
Ayrim xizmatlar frontend uchun alohida public yoki publishable kalit beradi. Shuning uchun kalit turini xizmat hujjatidan tekshirish muhim.
Loyihada bir marta ko‘zdan kechiring: serverda qolishi kerak bo‘lgan ma’lumot brauzerga chiqib ketmayaptimi?
API kalitini .env fayliga yozdingiz. Endi xavfsizmi?
Muhimi, keyin bu qiymat qayerga borishi. Agar u brauzerga yuboriladigan kod ichiga qo‘shilsa, foydalanuvchi uni ko‘rishi mumkin.
Fayl nomi yoki kodning chalkashtirilgani kalitni maxfiy qilib qo‘ymaydi.
Maxfiy kalit talab qiladigan so‘rovni ishonchli server qismida bajaring. Brauzerga esa foydalanuvchiga kerakli natijani qaytaring.
Ayrim xizmatlar frontend uchun alohida public yoki publishable kalit beradi. Shuning uchun kalit turini xizmat hujjatidan tekshirish muhim.
Loyihada bir marta ko‘zdan kechiring: serverda qolishi kerak bo‘lgan ma’lumot brauzerga chiqib ketmayaptimi?
👍3❤🔥2❤2😨2
Yangi kutubxona qo‘shishdan oldin besh daqiqa ajrating.
Vazifa chiqdi. Qidiruvdan tayyor kutubxona topildi. O‘rnatib yuborish juda oson.
Oldin uning aynan nima uchun kerakligini yozib ko‘ring.
Til yoki brauzerning mavjud imkoniyati ishni bajaradimi? Kutubxonaning kerakli qismini ishlatasizmi? Hujjati tushunarlimi? Yangilash va qo‘llab-quvvatlashga tayyormisiz?
Ba’zan tayyor yechim ancha vaqt tejaydi. Ba’zan esa kichkina vazifa uchun loyihaga ortiqcha bog‘liqlik qo‘shiladi.
Qatorlar sonining o‘zi qaror uchun yetmaydi. Murakkab vazifani ishonchli bajarish ham muhim.
Tanlov sababini bir jumlada yozib qo‘ying: «Bu kutubxonani falon vazifani bajarish uchun oldik». Keyin uning loyihada nima qilayotgani tushunarli bo‘ladi.
Vazifa chiqdi. Qidiruvdan tayyor kutubxona topildi. O‘rnatib yuborish juda oson.
Oldin uning aynan nima uchun kerakligini yozib ko‘ring.
Til yoki brauzerning mavjud imkoniyati ishni bajaradimi? Kutubxonaning kerakli qismini ishlatasizmi? Hujjati tushunarlimi? Yangilash va qo‘llab-quvvatlashga tayyormisiz?
Ba’zan tayyor yechim ancha vaqt tejaydi. Ba’zan esa kichkina vazifa uchun loyihaga ortiqcha bog‘liqlik qo‘shiladi.
Qatorlar sonining o‘zi qaror uchun yetmaydi. Murakkab vazifani ishonchli bajarish ham muhim.
Tanlov sababini bir jumlada yozib qo‘ying: «Bu kutubxonani falon vazifani bajarish uchun oldik». Keyin uning loyihada nima qilayotgani tushunarli bo‘ladi.
😨2❤1👍1
Bitta tugma bosildi. Buyurtma esa ikkita.
Sayt javob bermayotgandek ko‘rindi. Foydalanuvchi «Buyurtma berish»ni yana bosdi. Birozdan keyin ikkita buyurtma paydo bo‘ldi.
Tugmani vaqtincha o‘chirib turish takroriy bosishni kamaytiradi. Lekin so‘rov boshqa sabab bilan ham qayta yuborilishi mumkin: masalan, server ishni bajargan, javob esa yetib kelmagan.
Shuning uchun takroriy so‘rov serverda ham hisobga olinadi.
Buni qo‘llab-quvvatlaydigan API’da ayni amalning qayta urinishlari uchun bir xil idempotency key ishlatiladi. Server shu kalit orqali avval bajarilgan amalni taniydi.
Buyurtma yaratish kabi joylarda «foydalanuvchi faqat bir marta bosadi» degan taxminga suyanib qolmang 🙂
Sayt javob bermayotgandek ko‘rindi. Foydalanuvchi «Buyurtma berish»ni yana bosdi. Birozdan keyin ikkita buyurtma paydo bo‘ldi.
Tugmani vaqtincha o‘chirib turish takroriy bosishni kamaytiradi. Lekin so‘rov boshqa sabab bilan ham qayta yuborilishi mumkin: masalan, server ishni bajargan, javob esa yetib kelmagan.
Shuning uchun takroriy so‘rov serverda ham hisobga olinadi.
Buni qo‘llab-quvvatlaydigan API’da ayni amalning qayta urinishlari uchun bir xil idempotency key ishlatiladi. Server shu kalit orqali avval bajarilgan amalni taniydi.
Buyurtma yaratish kabi joylarda «foydalanuvchi faqat bir marta bosadi» degan taxminga suyanib qolmang 🙂
💯2❤1👍1🔥1😨1💘1
Ertangi o‘zingizga ikki qator yozib qoldiring.
Ertalab noutbukni ochdingiz. Kecha qayerda to‘xtagandingiz o‘zi? Fayllar ochiq, lekin keyingi qadam esdan chiqqan.
Ishni tugatishdan oldin kichkina yozuv qoldirib ko‘ring:
«Mahsulotlar ro‘yxati chiqyapti. Saralash tugmasi hali ulanmagan. Ertaga avval tanlangan qiymat so‘rovga borayotganini tekshiraman».
Yozuv chiroyli bo‘lishi shart emas. Keyingi safar ishga qaytishingizga yordam bersa, yetadi.
Biror taxminni tekshirib, natija chiqmagan bo‘lsa, shuni ham yozing. Ertaga xuddi shu yo‘lni yana boshidan yurib ketmaysiz.
Ayniqsa, vazifani bir necha kunga chetga surayotgan bo‘lsangiz, bunday yozuv juda asqatadi.
Ertalab noutbukni ochdingiz. Kecha qayerda to‘xtagandingiz o‘zi? Fayllar ochiq, lekin keyingi qadam esdan chiqqan.
Ishni tugatishdan oldin kichkina yozuv qoldirib ko‘ring:
«Mahsulotlar ro‘yxati chiqyapti. Saralash tugmasi hali ulanmagan. Ertaga avval tanlangan qiymat so‘rovga borayotganini tekshiraman».
Yozuv chiroyli bo‘lishi shart emas. Keyingi safar ishga qaytishingizga yordam bersa, yetadi.
Biror taxminni tekshirib, natija chiqmagan bo‘lsa, shuni ham yozing. Ertaga xuddi shu yo‘lni yana boshidan yurib ketmaysiz.
Ayniqsa, vazifani bir necha kunga chetga surayotgan bo‘lsangiz, bunday yozuv juda asqatadi.
🔥3❤2👍2
Backup bor. Undan ma’lumotni qaytarib ko‘rganmisiz?
Zaxira nusxa har kuni yaratiladi. Papkada fayllar ham turibdi. Ko‘ngil xotirjam.
Lekin kerak bo‘lgan kuni shu nusxadan ma’lumotni tiklay olasizmi?
Buni oldindan, alohida sinov muhitida tekshirib ko‘ring. Nusxa ochiladimi? Kerakli ma’lumotlar o‘qiladimi? Dastur ulardan foydalana oladimi?
Tiklash uchun qanday qadamlar kerakligini ham yozib boring. Qaysi fayl olinadi, qanday sozlamalar kerak, natija qanday tekshiriladi?
Bitta faylni qaytarganingiz butun tizim tiklanganini bildirmaydi. Sizga kerak bo‘ladigan tiklash holatini sinang.
Muammo chiqqan kuni yo‘riqnomani birinchi marta o‘qishga to‘g‘ri kelmasin.
Zaxira nusxa har kuni yaratiladi. Papkada fayllar ham turibdi. Ko‘ngil xotirjam.
Lekin kerak bo‘lgan kuni shu nusxadan ma’lumotni tiklay olasizmi?
Buni oldindan, alohida sinov muhitida tekshirib ko‘ring. Nusxa ochiladimi? Kerakli ma’lumotlar o‘qiladimi? Dastur ulardan foydalana oladimi?
Tiklash uchun qanday qadamlar kerakligini ham yozib boring. Qaysi fayl olinadi, qanday sozlamalar kerak, natija qanday tekshiriladi?
Bitta faylni qaytarganingiz butun tizim tiklanganini bildirmaydi. Sizga kerak bo‘ladigan tiklash holatini sinang.
Muammo chiqqan kuni yo‘riqnomani birinchi marta o‘qishga to‘g‘ri kelmasin.
🔥3❤🔥2❤2👍2💯1
«Ana u tugmani bosing» demay turing.
Yangi funksiyani birovga ko‘rsatayotganda hamma qadamni aytib turish oson. Lekin shunda u mustaqil foydalana oladimi, bilmay qolasiz.
Masalan: «Shu maqolani keyinroq o‘qish uchun saqlab qo‘ying», deb vazifa bering. Qayerni bosishni aytmang.
Qaysi joyda to‘xtadi? Nimani bosishga urindi? Saqlangan maqolani qayerdan qidirdi?
Ikkilanib qolsa, darrov tushuntirishga shoshilmang. «Hozir nimani topishga harakat qilyapsiz?» deb so‘rang.
Bitta kuzatuv hamma foydalanuvchi haqida xulosa bermaydi. Lekin sizga aniq tuyulgan tugma boshqaga nimani anglatganini ko‘rsatishi mumkin.
Keyingi o‘zgarish uchun shu kuzatuvdan aniq bir muammoni tanlang.
Yangi funksiyani birovga ko‘rsatayotganda hamma qadamni aytib turish oson. Lekin shunda u mustaqil foydalana oladimi, bilmay qolasiz.
Masalan: «Shu maqolani keyinroq o‘qish uchun saqlab qo‘ying», deb vazifa bering. Qayerni bosishni aytmang.
Qaysi joyda to‘xtadi? Nimani bosishga urindi? Saqlangan maqolani qayerdan qidirdi?
Ikkilanib qolsa, darrov tushuntirishga shoshilmang. «Hozir nimani topishga harakat qilyapsiz?» deb so‘rang.
Bitta kuzatuv hamma foydalanuvchi haqida xulosa bermaydi. Lekin sizga aniq tuyulgan tugma boshqaga nimani anglatganini ko‘rsatishi mumkin.
Keyingi o‘zgarish uchun shu kuzatuvdan aniq bir muammoni tanlang.
🔥3❤🔥2👍2
Texnik suhbatda «bilmayman» deyish mumkin.
Tanish bo‘lmagan savol tushdi. Shu yerda biladigandek gapirishga urinish shart emas.
«Bu usulni hali ishlatmaganman. Masalani qanday tushunganimni aytib, yechim o‘ylab ko‘rsam bo‘ladimi?» deb boshlash mumkin.
Keyin shartlarni aniqlashtiring. Masalan, takroriy qiymatlarni topish kerak bo‘lsa: ma’lumot hajmi qancha, tartib saqlanishi kerakmi, qo‘shimcha xotira ishlatsa bo‘ladimi?
Avval oddiy yechimni tushuntiring. Keyin uning qaysi joyi sekin yoki noqulay bo‘lishi mumkinligini ayting.
Orada to‘xtab o‘ylash ham mumkin. Har soniyani gap bilan to‘ldirish kerak emas.
Bilimingiz yetmagan joyni ochiq aytib, bilgan qismingizni aniq ko‘rsating.
Tanish bo‘lmagan savol tushdi. Shu yerda biladigandek gapirishga urinish shart emas.
«Bu usulni hali ishlatmaganman. Masalani qanday tushunganimni aytib, yechim o‘ylab ko‘rsam bo‘ladimi?» deb boshlash mumkin.
Keyin shartlarni aniqlashtiring. Masalan, takroriy qiymatlarni topish kerak bo‘lsa: ma’lumot hajmi qancha, tartib saqlanishi kerakmi, qo‘shimcha xotira ishlatsa bo‘ladimi?
Avval oddiy yechimni tushuntiring. Keyin uning qaysi joyi sekin yoki noqulay bo‘lishi mumkinligini ayting.
Orada to‘xtab o‘ylash ham mumkin. Har soniyani gap bilan to‘ldirish kerak emas.
Bilimingiz yetmagan joyni ochiq aytib, bilgan qismingizni aniq ko‘rsating.
❤3🔥3👍2
Bu hafta nimani o‘rganganingizni ko‘rsata olasizmi?
O‘qishga sarflangan soatlarni sanash oson. O‘sha vaqt ichida nima o‘zgarganini ham ko‘rib chiqing.
Oldin tushunmagan narsangizni endi misol bilan tushuntira olasizmi? Yordamsiz bajara oladigan yangi ish bormi?
Masalan, «Asinxron kod o‘qidim» degan yozuvni aniqroq qiling:
«Ikki so‘rov3 natijasini kutib, ikkalasi kelgach sahifani yangilaydigan kichik misol yozdim».
Haftadan uchta narsani ajrating:
— ishlagan kodingiz;
— tushuntira oladigan yangi tushuncha;
— hali chalkash bo‘lib turgan savol.
Keyingi haftada nimani takrorlash va nimani chuqurroq o‘rganishni shu ro‘yxatdan tanlang.
Sizning bu haftadagi eng foydali topilmangiz nima bo‘ldi?
O‘qishga sarflangan soatlarni sanash oson. O‘sha vaqt ichida nima o‘zgarganini ham ko‘rib chiqing.
Oldin tushunmagan narsangizni endi misol bilan tushuntira olasizmi? Yordamsiz bajara oladigan yangi ish bormi?
Masalan, «Asinxron kod o‘qidim» degan yozuvni aniqroq qiling:
«Ikki so‘rov3 natijasini kutib, ikkalasi kelgach sahifani yangilaydigan kichik misol yozdim».
Haftadan uchta narsani ajrating:
— ishlagan kodingiz;
— tushuntira oladigan yangi tushuncha;
— hali chalkash bo‘lib turgan savol.
Keyingi haftada nimani takrorlash va nimani chuqurroq o‘rganishni shu ro‘yxatdan tanlang.
Sizning bu haftadagi eng foydali topilmangiz nima bo‘ldi?
❤3🔥3🤩2
Uchta yarimtayyor funksiya orasida qolib ketmang.
Forma yarimtayyor. Ro‘yxat ham. Sozlamalar sahifasi ochilgan. Kod ko‘p, lekin boshidan oxirigacha ishlatib ko‘radigan qism yo‘q.
Shunday paytda bitta kichik jarayonni to‘liq ishlatib ko‘ring.
Masalan, vazifa qo‘shish: nomini yozasiz, saqlaysiz, ro‘yxatda ko‘rasiz. Sahifani qayta ochganda ham vazifa turadi.
Hozircha unga rang tanlash, eslatma yoki murakkab filtr kerak bo‘lmasligi mumkin.
Shu yo‘l ishlagach, qismlar bir-biriga qanday ulanayotgani ko‘rinadi. Forma, server va saqlash qismidagi muammolarni birgalikda tekshira olasiz.
Keyingi funksiyani boshlashdan oldin, hozirgisining asosiy yo‘lidan o‘zingiz bir marta o‘tib ko‘ring.
Forma yarimtayyor. Ro‘yxat ham. Sozlamalar sahifasi ochilgan. Kod ko‘p, lekin boshidan oxirigacha ishlatib ko‘radigan qism yo‘q.
Shunday paytda bitta kichik jarayonni to‘liq ishlatib ko‘ring.
Masalan, vazifa qo‘shish: nomini yozasiz, saqlaysiz, ro‘yxatda ko‘rasiz. Sahifani qayta ochganda ham vazifa turadi.
Hozircha unga rang tanlash, eslatma yoki murakkab filtr kerak bo‘lmasligi mumkin.
Shu yo‘l ishlagach, qismlar bir-biriga qanday ulanayotgani ko‘rinadi. Forma, server va saqlash qismidagi muammolarni birgalikda tekshira olasiz.
Keyingi funksiyani boshlashdan oldin, hozirgisining asosiy yo‘lidan o‘zingiz bir marta o‘tib ko‘ring.
🥰3💘2🤩1
Izoh kodning «nega»sini aytsin.
Kodda // narxni hisoblaymiz degan izoh bor. Uning tagidagi funksiya ham aynan narxni hisoblayapti. Izoh ko‘p narsa qo‘shmadi.
Boshqa holatni tasavvur qiling: chegirma yetkazib berish narxiga qo‘llanmaydi. Bu qoidaning sababi kodga qarab darrov bilinmasligi mumkin.
Shu yerda qisqa izoh foydali: «Chegirma faqat mahsulotlar summasiga tegishli; yetkazib berish alohida hisoblanadi».
Kod nima qilayotganini nom va tuzilish ko‘rsata oladi. Noodatiy qarorning nega qabul qilinganini izohda qoldiring.
Qoida o‘zgarsa, izohni ham yangilang. Eski izoh yangi kodni tushunishni yanada qiyinlashtiradi.
Kodda // narxni hisoblaymiz degan izoh bor. Uning tagidagi funksiya ham aynan narxni hisoblayapti. Izoh ko‘p narsa qo‘shmadi.
Boshqa holatni tasavvur qiling: chegirma yetkazib berish narxiga qo‘llanmaydi. Bu qoidaning sababi kodga qarab darrov bilinmasligi mumkin.
Shu yerda qisqa izoh foydali: «Chegirma faqat mahsulotlar summasiga tegishli; yetkazib berish alohida hisoblanadi».
Kod nima qilayotganini nom va tuzilish ko‘rsata oladi. Noodatiy qarorning nega qabul qilinganini izohda qoldiring.
Qoida o‘zgarsa, izohni ham yangilang. Eski izoh yangi kodni tushunishni yanada qiyinlashtiradi.
❤2👍2😨2
Login qilgan odam hamma buyurtmani ko‘ra oladimi?
Foydalanuvchi tizimga kirdi. Demak, uning kimligi ma’lum. Endi buyurtma sahifasini ochyapti.
Shu yerda yana bir tekshiruv kerak: bu buyurtmani ko‘rishga aynan shu odamning haqqi bormi?
Login kimligini aniqlaydi. Ruxsat esa ma’lum bir ma’lumotni ko‘rish yoki amalni bajarish mumkinligini belgilaydi.
Masalan, foydalanuvchi o‘z buyurtmasini ochishi mumkin. Manzildagi buyurtma raqamini almashtirgani unga boshqa odamning buyurtmasini ko‘rish huquqini bermaydi.
Bunday tekshiruvni serverda, so‘ralgan ma’lumotning o‘zi uchun bajaring. Tugmani sahifada yashirishning o‘zi yetmaydi.
Foydalanuvchi tizimga kirdi. Demak, uning kimligi ma’lum. Endi buyurtma sahifasini ochyapti.
Shu yerda yana bir tekshiruv kerak: bu buyurtmani ko‘rishga aynan shu odamning haqqi bormi?
Login kimligini aniqlaydi. Ruxsat esa ma’lum bir ma’lumotni ko‘rish yoki amalni bajarish mumkinligini belgilaydi.
Masalan, foydalanuvchi o‘z buyurtmasini ochishi mumkin. Manzildagi buyurtma raqamini almashtirgani unga boshqa odamning buyurtmasini ko‘rish huquqini bermaydi.
Bunday tekshiruvni serverda, so‘ralgan ma’lumotning o‘zi uchun bajaring. Tugmani sahifada yashirishning o‘zi yetmaydi.
❤4👍2😨2