Maqola isbotlaydigan asosiy gap bitta: hech qachon o‘zgarishdan to‘xtamaydigan tizim, oxir-oqibat hammasini birdan yig‘ib qo‘yganingdagidek holatga keladi. Oldingi boblardagi kafolatlar bitta ajratilgan qism haqida edi. Bu bob ularni butun tizimga ko‘chiradi — hamma qism yuklanadi, tushiriladi va aralashib ishlaydi.
O‘n qoidali lifecycle modeli
Buning uchun maqola o‘n qoidali lifecycle modelini aniqlaydi. Keyin qulay taxminlarni birma-bir olib tashlaydi:
| Olib tashlangan taxmin | Real hayotdagi sabab |
|---|---|
| O‘tishlar bir zumda bo‘ladi | Amallar vaqt oladi |
| O‘tishlarni bo‘lib bo‘lmaydi | Boshqa qismlar oraga kirishi mumkin |
| O‘tishlar hech qachon muvaffaqiyatsiz bo‘lmaydi | Yuklash yarim yo‘lda buzilishi mumkin — nima qilish kerak? |
Har bir yengillashtirish real hayotdagi biror narsaga javob beradi — jumladan, yuklash yarim yo‘lda muvaffaqiyatsiz bo‘lsa nima qilish kerak degan noqulay savolga.
Beshta teorema
| # | Teorema | Oddiy tilda |
|---|---|---|
| 1 | Preservation | Hech qanday qoida tizimni buzilgan (malformed) holatda qoldira olmaydi |
| 2 | Exact recovery | Qismni olib tashlash — boshqalar orada narsa qilgan bo‘lsa ham — tizimni xuddi bu qism hech qachon bo‘lmagandek qoldiradi. Qism qanday tugaganidan qat’i nazar, ortda hech narsa qolmaydi |
| 3 | Ordering | Qism faqat bog‘liqliklari mavjud bo‘lgan joyda boshlanadi va ular unga kerak ekan, mavjud bo‘laveradi |
| 4 | Progress | Aylanma bog‘liqliklar (circular dependencies) bo‘lmasa, tizim deadlock’ka tushmaydi va doim tinch holatga (resting state) erishadi |
| 5 | Confluence | Qolgan to‘rttasiga ma’no beradigani: tartib muhim emas |
Konfluensiya nima deydi
Qism qo‘sh, olib tashla, provayderni almashtir, almashtirishni qaytar, hammasini xohlagancha aralashtir. Tizim erishadigan yakuniy holat — boshidanoq yakuniy konfiguratsiyani bir marta yozib, hech narsani tushirmagan holda oladigan holat bilan bir xil.
Amaliy maslahat
Nega bu qimmatli? Maqola o‘zi tushuntiradi: bu ilova haqida xuddi statik yig‘ilgandek fikrlash imkonini beradi. Qism yozuvchisi faqat yakuniy holat haqida o‘ylaydi — yuklash tartibi haqida emas.
Teorema nima demaydi
Mashhur qilganda tashlab qo‘yilmasligi kerak bo‘lgan ikkita chegara:
Chegara 1 — muvaffaqiyatsizliklar tashqarida. Bu ataylab qilingan, chunki muvaffaqiyatsizliklar haqiqiy farqlanish manbai. Biror narsaning muvaffaqiyatsiz bo‘lishi u qaysi holatga qarshi ishlaganiga bog‘liq — bir tartibda muvaffaqiyatsiz bo‘lishi mumkin, boshqasida to‘liq bajarilishi. Qolgan hamma narsada ikki holat mos keladi, chunki muvaffaqiyatsiz qism holatga hech narsa qo‘shmaydi.
Chegara 2 — gap holat haqida, chiqarilgan narsa haqida emas. Yuborilgan email qismni tushirish bilan qaytib kelmaydi. Teorema tizim holatini kafolatlaydi — tashqi dunyoga bo‘lgan ta’sirlarni emas.
Eslatma
Bu chegaralar kuchni kamaytirmaydi — aksincha, kafolatni aniq belgilaydi. Teorema nima va'da qilishini bilsang, undan to‘g‘ri foydalanasan.
Teoremadan kodga
Maqolaning har bir belgisi kodda o‘z hamkasbiga ega — bu ishni sahifada qoldirmaydigan narsa:
| Maqolada | Kodda |
|---|---|
| Kontekst | Obyekt |
| Effektni ro‘yxatdan o‘tkazish | Metod chaqiruvi |
| Qism namunasi (piece instance) | O‘z maydonlari bilan struct |
| Inverslar stack’i | Uni olib tashlaydigan maydon |
Amaliy natija — hot reload, hech narsani sozlamasdan: faylni o‘zgartirsang, tizim modulni jarayonni qayta ishga tushirmay almashtiradi. Boshqa tool’larda ham bor, lekin odatda dasturchi qaysi modullarni almashtirish mumkinligini qo‘lda belgilashi kerak. Bu yerda kerak emas — chunki har bir qism o‘zi o‘rnatgan hamma narsani chegaralab qo‘ygan: almashtirish = tashlab, qayta o‘rnatish. Va almashtirish transaksion: import’da xato bo‘lsa, avvalgi nusxa tiklanadi — tizim hech qachon «yarim almashtirilgan» holatda o‘tirmaydi.
Katta misol: maqola boshida tilga olingan chat bot freymvorki Cordis’da to‘rt yildan beri ishlaydi va 4000 dan ortiq hamjamiyat plaginini to‘plagan. Muhimi kengaytma hajmi emas: freymvork faqat o‘z sohasining lug‘atini qo‘shadi. Qismlarni yuklash, umumiy kontekst, event’lar va o‘zini bekor qiladigan effektlar — hammasi o‘sha asosiy mexanizmlardan keladi.
Mualliflarning o‘z dalili haqidagi so‘zi ham diqqatga sazovor: bu kuzatuv tavsifi, nazoratli taqqoslash emas; abstraksiya nimaga tushishini va unumdorlikka ta’sirini o‘lchash — kelajak ishi. 88 sahifalik rasmiy isbotli maqola o‘z empirik dalili haqida shunday halol yozsa — o‘z ishini yaxshi qilyapti.
Xulosa
- Maqola o‘n qoidali lifecycle modeli bilan boshlaydi va uchta qulay taxminni olib tashlaydi: bir zumdalik, uzilmaslik, muvaffaqiyatsizsizlik.
- Beshta teorema: Preservation, Exact recovery, Ordering, Progress va Confluence.
- Konfluensiya — eng kattasi: tartib muhim emas, tizim «bir marta yig‘ib qo‘yilgan» holatga keladi.
- Ikki chegara: muvaffaqiyatsizliklar kafolatdan tashqarida; kafolat holat haqida — yuborilgan email kabi tashqi ta’sirlar haqida emas.
- Nazariya kodga to‘liq ko‘chirilgan: hot reload sozlamasiz ishlaydi, 4000+ plaginli amaliy misol bor.
Keyingi darsda nazariyani bir chetga qo‘yib, DeepSeek Harness’ni boshqa harnesslar bilan taqqoslaymiz.