Writing Up the Root Cause
Asosiy sababni yozib qoldirish
Samolyot halokati tekshiruvchilarini tasavvur qiling: ular sabab topilgach, shunchaki "topdik" deb, uni yozmasdan tarqalib ketishmaydi — ular BATAFSIL hisobot yozadi: nima sodir bo'ldi, nega sodir bo'ldi, va KELAJAKDA bunday narsa qayta sodir bo'lmasligi uchun nima o'zgartirilishi kerak. Bu hisobot — kelajakdagi minglab parvozlarni xavfsizroq qiladi. Xatoni tuzatib bo'lgach ham, xuddi shunday yozib qoldirish muhim.
Case Study darslarida ko'rgan uch stsenariyning (xotira sizib chiqishi, timeout, tugamaydigan goroutine) har birida, xatoni TOPGANDAN keyin, uni shunchaki "tuzatib, unutish" — katta imkoniyatni behuda sarflashdir. Root cause yozuvi (post-mortem) — topilgan sababni, uni topish jarayonini va kelajakda oldini olish choralarini yozib qoldirish.
| Bo'lim | Nima yoziladi |
|---|---|
| Nima sodir bo'ldi | Foydalanuvchiga yoki tizimga ko'ringan ta'sir: "server har 3 kunda qulab tushardi" |
| Asosiy sabab (root cause) | Aniq texnik sabab: "requestLog xaritasi hech qachon tozalanmagan" |
| Qanday topildi | Gipoteza va tekshiruv jarayoni: "xotira profilini solishtirib, aybdor tuzilmani aniqladik" |
| Qanday tuzatildi | Aniq o'zgarish: "xaritani vaqti-vaqti bilan tozalaydigan funksiya qo'shildi" |
| Kelajakda oldini olish | Umumiy chora: "barcha global keshlar uchun xotira monitoringi qo'shildi" |
Bu yozuv — Reproduce Before You Fix darsida ko'rgan avtomatik testga o'xshaydi: xuddi test "bu xato qaytadan chiqmasligini" ISBOTLASH uchun xizmat qilgani kabi, root cause yozuvi "bu XATO TURI qaytadan sodir bo'lmasligi" uchun bilim qoldiradi — nafaqat sizga, balki butun jamoaga.
Muhim tamoyil: root cause yozuvi odamni aybdor qilish uchun emas — u JARAYON va TIZIMdagi kamchilikni topish uchun. "Kim bu kodni yozgan" emas, balki "nega bu turdagi xato oson kiritilib qolgan, va qanday qilib buni KELAJAKDA avtomatik aniqlaydigan (test, monitoring, ogohlantirish) qilib qo'yish mumkin" — bu savol ko'proq foyda beradi.
Bu kurs davomida siz gipoteza qurish, xatoni qayta hosil qilish, ikkiga bo'lib qidirish, stack trace o'qish, o'zgaruvchilarni izolyatsiya qilish, logging va debugger, va rezina o'rdak texnikasini ko'rdingiz — bularning barchasi BITTA umumiy jarayonning qismlari: noaniq muammodan, tekshirilgan, tushuntirilishi mumkin bo'lgan sababgacha, tizimli qadamlar bilan borish. Xato tuzatildi deganda, ish tugamaydi — uni yozib qoldirish, keyingi safar butun jamoaning vaqtini tejaydi.
Key Takeaway
Key Takeaway:
Xatoni tuzatgandan keyin, sababni, uni topish jarayonini va kelajakda oldini olish chorasini yozib qoldiring. Bu yozuv odamni aybdor qilish uchun emas — xuddi shu turdagi xato butun jamoada qaytarilmasligi uchun bilim qoldiradi.