Dasturlash kitobi
Noldan senior+ gacha to'liq full-stack dasturlash kursi.
0-QISM — Tayyorgarlik
- 0.1-bob: Kompyuter qanday ishlaydi — CPU, RAM, disk, binary va ma'lumot saqlashSiz yozadigan har bir kod qatori — let x = 5 bo'ladimi, array.map bo'ladimi yoki butun bir React ilovasi bo'ladimi — oxir-oqibat temir parchasida ishlaydi. Dasturchining ishi, aslida, mashinaga nima q25 daq
- 0.2-bob: Operatsion tizimlar va fayl tizimiOldingi bobda temirni — CPU, RAM, disk va binary'ni — o'rgandik. Lekin siz yozadigan dastur o'sha temirga to'g'ridan-to'g'ri murojaat qilmaydi. Siz hech qachon "RAM'ning 5-manziliga shu baytni yoz" yo24 daq
- 0.3-bob: Terminal / buyruq qatori (bash asoslari)Hozirgacha kompyuter bilan, ehtimol, sichqoncha orqali gaplashgansiz: papkani ochish uchun ustiga bosasiz, faylni ko'chirish uchun sudraysiz. Bu — GUI . U qulay, lekin dasturchi uchun sekin va cheklan21 daq
- 0.4-bob: Internet va web qanday ishlaydi (client–server, HTTP/HTTPS, DNS)Hozirgacha bitta kompyuterni o'rgandik: uning temirini , operatsion tizimini , terminalini . Lekin zamonaviy dastur deyarli hech qachon yolg'iz ishlamaydi — u boshqa kompyuterlar bilan gaplashadi. Siz18 daq
- 0.5-bob: Brauzer qanday ishlaydi (rendering va JavaScript engine)Oldingi bobda brauzer serverdan HTML, CSS va JS fayllarini olib keldi. Lekin bu fayllar — shunchaki matn . Siz ekranda ko'rayotgan chiroyli tugmalar, rasmlar, animatsiyalar — bu matn qandaydir rangli 15 daq
- 0.6-bob: Algoritmik fikrlash va pseudokodKo'pchilik dasturlashni "qaysidir tilning sintaksisini yodlash" deb tushunadi. Bu — eng katta xato. Sintaksisni bir oyda unutasiz va qaytadan o'rganasiz; lekin muammoni qadamlarga bo'lib yechish ko'ni16 daq
- 0.7-bob: Dasturchi asboblari — VS Code, Node.js va npmDuradgor yog'ochni tushunadi, lekin asboblarsiz stol yasolmaydi. Siz kompyuterni , terminalni , tarmoqni va fikrlashni o'rgandingiz — endi haqiqiy kod yozadigan ustaxonani qurish vaqti.16 daq
1-QISM — HTML CSS
- 1.1-bob: HTML — tuzilma, semantik teglar, formalar, jadval va media0-QISMda butun nazariy poydevorni qo'ydik. Endi — birinchi marta haqiqiy kod yozamiz. Va boshlanish nuqtasi mantiqan to'g'ri: HTML.20 daq
- 1.2-bob: CSS asoslari — selektorlar, box model, ranglar, birliklarOldingi bobda sahifaning skeletini — HTML'ni — yozdik. Lekin u hozir g'arib ko'rinadi: qora matn, oq fon, hech qanday bezak. CSS aynan shu yerda ishga tushadi.20 daq
- 1.3-bob: Flexbox (chuqur)Oldingi bobda bitta elementning "qutisi"ni boshqardik. Lekin real sahifa — ko'p qutidan iborat: menyu havolalari yonma-yon, kartalar bir qatorda, tugma markazda. Ularni bir-biriga nisbatan qanday joyl12 daq
- 1.4-bob: CSS Grid (chuqur), positions, container va widthOldingi bobda Flexbox bilan elementlarni bir o'lcham bo'ylab joyladik. Lekin murakkab sahifa — masalan dashboard yoki gazeta layout'i — ikki o'lchamni bir vaqtda talab qiladi: qatorlar va ustunlar bir16 daq
- 1.5-bob: Responsive dizayn va media queriesBugun saytga kirayotganlarning yarmidan ko'pi — telefonda. Lekin siz kodni katta monitorda yozasiz. Agar faqat o'z ekraningizga qarab dizayn qilsangiz, saytingiz telefonda buzilib ko'rinadi: matn juda15 daq
- 1.6-bob: SCSS/Sass — o'zgaruvchilar, nesting, mixin va funksiyalarHozirgacha sof CSS yozdik va u yaxshi ishladi. Lekin loyiha kattalashganda CSS'ning kamchiliklari ko'rinadi:14 daq
- 1.7-bob: Tailwind CSS — utility-firstOldingi boblarda CSS va SCSS yozdik — har biri uchun alohida class o'ylab topdik , keyin alohida faylda uslub berdik. Tailwind bu jarayonni butunlay teskari qiladi.12 daq
- 1.8-bob: Figma asoslari (dizayndan kodga)Hozirgacha biz kodni o'z boshimizdan yozdik. Lekin real ishda jarayon boshqacha: avval dizayner ilova/saytni Figmada chizadi , keyin siz — frontend dasturchi o'sha dizaynni piksel-aniq kodga aylantira11 daq
- 1.9-bob: CSS arxitekturasi (BEM) va accessibility (a11y) asoslari1-QISMning so'nggi bobiga keldik. Endi ikki "kattalar" mavzusini o'rganamiz — bular boshlovchini professionaldan ajratadi:16 daq
2-QISM — JavaScript
- 2.1-bob: JavaScript kirish — o'zgaruvchilar, ma'lumot turlari, operatorlar1-QISMda yasagan saytlaringiz chiroyli edi, lekin jonsiz: tugmani bossangiz hech narsa bo'lmaydi, ma'lumot saqlanmaydi, hisob qilmaydi. JavaScript aynan shu jonni kiritadi — sayt fikrlaydigan, javob b14 daq
- 2.2-bob: Shartli operatorlar va tsikllar (for, while, ...)0.6-bobda barcha dasturlarning uch g'ishti borligini o'rgandik: ketma-ketlik, shart va takror . Oldingi bobda ketma-ketlikni va operatorlarni ko'rdik. Endi qolgan ikki g'ishtni JavaScript'da yozamiz —12 daq
- 2.3-bob: Funksiyalar — parametr, return, scope, arrow functionsHozirgacha kod yuqoridan pastga bir marta ishlardi. Lekin real dasturda bir xil ishni ko'p marta bajarish kerak: "summani hisobla", "foydalanuvchini tekshir", "xabar yubor". Har safar qaytadan yozish 14 daq
- 2.4-bob: Execution context, hoisting, scope chain va closure (chuqur)Oldingi boblarda o'zgaruvchi , shart/tsikl va funksiya — JS'ning "nima"sini ko'rdik. Bu bob esa "nega" va "qanday" ga javob beradi: JS kod aslida qanday ishga tushadi? Nega o'zgaruvchini e'londan oldi14 daq
- 2.5-bob: this, prototype va prototypal inheritance (chuqur)Closure dan keyin — JS'ning ikkinchi "sirli" juftligi: this va prototype. Bular ko'p dasturchini chalkashtiradi, chunki ular boshqa tillardan farq qiladi. Lekin ularni tushunmasdan OOP , class, va but14 daq
- 2.6-bob: String va Number metodlarithis va prototype dan keyin biroz "dam olamiz" — lekin nihoyatda amaliy bobda. Kundalik dasturlashning katta qismi — matn va sonlar bilan ishlash: foydalanuvchi ismini formatlash, narxni chiroyli ko'r11 daq
- 2.7-bob: Array va barcha metodlari (map, filter, reduce, find, ...)Bu — JavaScript'ning eng ko'p ishlatiladigan bobi. Real dasturda ma'lumot deyarli doim ro'yxat ko'rinishida keladi: mahsulotlar, foydalanuvchilar, xabarlar, izohlar. Ularni o'zgartirish, filtrlash, yi14 daq
- 2.8-bob: Object — yaratish, manipulyatsiya, destructuring, spread/restMassivlar tartibli ro'yxat edi. Obyekt — JS'ning ikkinchi, eng muhim ma'lumot tuzilmasi: nom-qiymat juftliklari to'plami. Real dunyodagi deyarli har bir "narsa" obyekt bilan ifodalanadi: foydalanuvchi15 daq
- 2.9-bob: Map, Set va DateObyekt va massiv — JS'ning ikki asosiy tuzilmasi. Lekin ba'zi vazifalar uchun ular noqulay. JS yana uch maxsus tuzilma beradi:11 daq
- 2.10-bob: OOP — class, inheritance, encapsulation, polymorphism, static2.5-bobda JS obyekt tizimining ildizini xom holda ko'rdik — va u biroz "qo'l ishi" edi. Endi uning chiroyli, zamonaviy yuzasi — class sintaksisi va to'liq OOP ni o'rganamiz.13 daq
- 2.11-bob: Asinxron JS — callback, Promise, async/await, fetchBu — JavaScript'ning eng muhim va eng ko'p so'raladigan mavzularidan biri. Hozirgacha kod bir zumda ishladi. Lekin real dunyoda ko'p ish vaqt oladi: tarmoqdan ma'lumot olish , fayl o'qish , ma'lumotla13 daq
- 2.12-bob: Error handling — try/catch/finally, throw, custom errorHozirgacha deyarli har bobda try/catch ni sezdik . Endi xatolarni boshqarishni to'liq, professional darajada o'rganamiz. Bu — havaskor va professional dasturchi farqini eng aniq ko'rsatadigan mavzu.12 daq
- 2.13-bob: Regular expressions (RegEx)2.6-bobda matn metodlarini ko'rdik. Lekin ular oddiy qidiruvga yetadi. "Email to'g'rimi?", "Bu matnda barcha telefon raqamlarini top", "Faqat harf va raqamga ruxsat ber" — bunday naqsh asosidagi vazif10 daq
- 2.14-bob: Modullar — ES Modules (import/export), CommonJSHozirgacha kodni bitta faylda yozdik. Lekin real loyiha yuzlab fayldan iborat: har komponent, har funksiya, har sahifa — alohida faylda. Ularni bir-biriga bog'lash kerak: bu fayldagi funksiyani u fayl10 daq
- 2.15-bob: Functional programming asoslari — immutability, pure functions, HOF2.3 , 2.7 va 2.8 da funksional g'oyalarni alohida sezdik. Endi ularni bir butun paradigma sifatida — Functional Programming — o'rganamiz.12 daq
- 2.16-bob: DOM — tanlash, o'zgartirish, CRUD, events, delegation, bubblingBu — JavaScript'ni sahifaga ulovchi bob. Hozirgacha JS mantiqini o'rgandik, lekin u sahifadan "ajralgan" edi. DOM — JS bilan HTML o'rtasidagi ko'prik: tugma bosilsa javob berish, ro'yxatga element qo'11 daq
- 2.17-bob: Browser APIs — localStorage, sessionStorage, fetch, Intersection ObserverDOM — brauzer beradigan API'lardan bittasi edi. Brauzer JS'ga yana ko'plab kuchli imkoniyatlar beradi: ma'lumotni saqlash , tarmoq , element ko'rinishini kuzatish , geolokatsiya, notification va boshq10 daq
- 2.18-bob: Axios — so'rovlar va interceptorsfetch — brauzerning native so'rov vositasi, va u yaxshi. Lekin real loyihada ko'pchilik Axios kutubxonasini afzal ko'radi, chunki u fetchning bir nechta noqulayligini hal qiladi va kuchli interceptor 11 daq
3-QISM — Algoritmlar
- 3.1-bob: Big-O notatsiyasi (vaqt va xotira murakkabligi)2-QISMda JavaScript'ni o'rgandik — kodni ishlatishni. Endi 3-QISMda kodni samarali yozishni o'rganamiz. Bu — havaskor va professional dasturchini ajratadigan, intervyularning markaziy mavzusi.14 daq
- 3.2-bob: Massiv va String algoritmlariBig-O o'lchovini bildik; endi uni amalda qo'llaymiz. Massiv va string — dasturlashda eng ko'p uchraydigan ma'lumot. Ular ustidagi klassik algoritm naqshlari — intervyularning va kundalik ishning asosi12 daq
- 3.3-bob: Linked List (bog'langan ro'yxat)Massiv — xotirada ketma-ket joylashgan: indeks O tez, lekin o'rtaga qo'shish/o'chirish O sekin . Linked List — butunlay boshqa yondashuv: elementlar xotirada tarqoq yashaydi, lekin har biri keyingisig12 daq
- 3.4-bob: Stack va QueueLinked List — moslashuvchan, lekin "cheksiz erkin". Ba'zan ataylab cheklangan tuzilma kerak — bu cheklov tartibni va ishonchni beradi. Stack va Queue — aynan shunday: ular faqat ma'lum joydan qo'shish11 daq
- 3.5-bob: Hash Table / Map3.1-bobda bir necha marta "Set/Map bilan O ni O ga tushiramiz" dedik. Endi savol: Map ichkarida qanday qilib O qidiruvni ta'minlaydi? Massivda element qidirish O , lekin Map'da get/has deyarli darrov.11 daq
- 3.6-bob: Tree va Binary Search Tree (BST)Hozirgacha chiziqli tuzilmalarni ko'rdik: massiv , linked list , stack/queue — elementlar bir qatorda. Lekin real dunyodagi ko'p ma'lumot ierarxik : oila daraxti, fayl tizimi , DOM , kompaniya tuzilma13 daq
- 3.7-bob: Graph (graf)Daraxt — maxsus holat: har node faqat bitta otaga ega, sikllar yo'q. Graph — eng umumiy bog'langan tuzilma: node'lar ixtiyoriy tarzda, har xil yo'nalishda bog'langan. Aslida daraxt — bu grafning bir t12 daq
- 3.8-bob: Heap (priority queue)Queue — FIFO edi. Lekin ba'zan element kelish tartibida emas, muhimligi bo'yicha chiqishi kerak: kasalxona shoshilinch xonasi , task scheduler , Dijkstra .14 daq
- 3.9-bob: Saralash algoritmlari (bubble, selection, insertion, merge, quick)Ma'lumotlar tuzilmalarini bildik; endi klassik algoritmlarga o'tamiz. Saralash — eng fundamental algoritm masalasi: tartibsiz ma'lumotni tartiblangan qilish. Real loyihada arr.sort ishlatasiz — lekin 13 daq
- 3.10-bob: Qidiruv algoritmlari (linear, binary)Saralashni bildik; endi uning juftligi — qidiruv ni o'rganamiz. "Ma'lumotda biror element bormi/qayerda?" — dasturlashda eng ko'p uchraydigan amal. 3.1 va 3.6-bobda binary searchni qisqacha ko'rdik; e13 daq
- 3.11-bob: Rekursiya va backtrackingHozirgacha rekursiyani bir necha marta ishlatdik: merge/quick sort , tree traversal , DFS , rekursiv binary search . Endi uni chuqur o'rganamiz. Rekursiya — funksiyaning o'zini chaqirishi — boshida se12 daq
- 3.12-bob: Dinamik dasturlash (DP) asoslariRekursiyada fibonacci uchun O sekinlikni ko'rdik — bir xil qiymat qayta-qayta hisoblanardi. Dinamik dasturlash aynan shu isrofni hal qiladi: hisoblangan natijalarni saqlab, qayta hisoblamaslik. Bu — e11 daq
- 3.13-bob: Masala yechish strategiyalari (LeetCode uslubida)Barcha ma'lumotlar tuzilmalari va algoritmlarni o'rgandik. Endi ularni birlashtirib, yangi, tanish bo'lmagan masalaga qanday yondashishni o'rganamiz. Bu — 3-QISMning yakuni va texnik intervyuga tayyor11 daq
4-QISM — Git
- 4.1-bob: Git asoslari (init, add, commit, status, log)Kod yozishni 0–3 qismlarda chuqur o'rgandik. Endi uni boshqarishni — versiyalash, tarix, hamkorlikni — o'rganamiz. Git — har bir professional dasturchining kunlik quroli: bironta jiddiy loyiha Git'siz14 daq
- 4.2-bob: Branch, merge, rebase, conflict yechishAsosiy Git siklini bildik — lekin u chiziqli edi . Real ishda esa parallel ishlash kerak: siz yangi feature yozayotganingizda, hamkasbingiz xato tuzatadi, boshqasi boshqa feature ustida — hammasi bir 14 daq
- 4.3-bob: GitHub — remote, push, pull, Pull Request, forkLokal Git'ni bildik — lekin u faqat sizning kompyuteringda edi. Real ishda kod bulutda saqlanadi, jamoa u bilan ishlaydi, siz uni boshqa joydan ham olasiz. GitHub — aynan shu: Git loyihalarini saqlash11 daq
- 4.4-bob: Git workflow'lar (Gitflow, trunk-based)Git buyruqlarini bildik — branch, merge, PR. Lekin jamoa ularni qaysi tartibda, qanday qoidalar bilan ishlatadi? Bu — workflow masalasi. Workflow'siz jamoa — har kim o'zicha ishlaydi, main buziladi, c11 daq
- 4.5-bob: Conventional commits va .gitignoreGit asoslari , branch , GitHub va workflow ni bildik. Endi 4-QISMni ikki muhim, amaliy detal bilan yakunlaymiz:11 daq
5-QISM — Nodejs
- 5.1-bob: Node.js kirish — runtime, event loop (chuqur), V8Mana, kitobning eng katta amaliy qismlaridan biriga — backend dasturlashga keldik. 0.7-bobda Node.js'ni o'rnatdik, 2-QISMda JavaScript'ni chuqur o'rgandik, 0.4-bobda HTTP va server tushunchasini ko'rd20 daq
- 5.2-bob: npm, package.json, dependencies, scripts, semverNode.js'ning ishlash mexanizmini bildik. Endi uning ekotizimini — Node'ni dunyodagi eng katta dasturlash platformasiga aylantirgan narsani — npmni chuqur o'rganamiz. 0.7-bobda npm'ni qisqacha ko'rgand15 daq
- 5.3-bob: Core modullar — fs, path, os, util, crypto5.1-bobda Node arxitekturasini , 5.2-bobda npm ekotizimini o'rgandik. Endi Node'ning o'rnatilgan modullarini — npm'siz, npm installsiz, darrov mavjud kuchli vositalarini — chuqur o'rganamiz. Bular — h17 daq
- 5.4-bob: Events (EventEmitter) va Streams (chuqur)Core modullarni bildik. Endi Node'ning ikki fundamental, event-asoslangan tushunchasini chuqur o'rganamiz — bularsiz Node'ning ichki ishlashini to'liq tushunib bo'lmaydi:16 daq
- 5.5-bob: HTTP modul — server yaratish, request/response (qo'lda)0.4-bobda HTTP nazariyasini o'rgandik. 5.1–5.4-boblarda Node mexanizmlarini ko'rdik. Endi hammasini birlashtiramiz: faqat core http modul bilan, Express'siz, o'z qo'limiz bilan server yaratamiz.16 daq
- 5.6-bob: Express.js — routing, middleware (chuqur), req/res, router, static fayllar5.5-bobda sof http modul bilan server yozdik — va uning og'irligini his qildik: routing qo'lda if/else, body'ni stream'dan qo'lda o'qish, query'ni qo'lda parse, takrorlanuvchi kod. Endi bularning hamm20 daq
- 5.7-bob: REST API dizayni (resurslar, metodlar, status, versiyalash, best practices)5.5–5.6-boblarda API qanday yozishni o'rgandik. Endi undan ham muhimrog'ini — API'ni qanday dizayn qilishni — o'rganamiz. Ikki dasturchi bir xil funksiyani beradigan API yozishi mumkin, lekin biri toz18 daq
- 5.8-bob: Environment variables — dotenv, configAPI yozishni va dizaynni bildik. Endi muhim, lekin ko'pincha e'tibordan chetda qoladigan mavzuni o'rganamiz: konfiguratsiya — sozlamalarni boshqarish. Har bir real ilovada muhitga bog'liq qiymatlar bo15 daq
- 5.9-bob: Validatsiya — express-validator, Joi, Zod, class-validatorBackend dasturlashning eng muhim qoidasi: "Hech qachon foydalanuvchiga ishonma" . Foydalanuvchi so'rovga istalgan narsa yuborishi mumkin: bo'sh maydon, noto'g'ri format, juda uzun matn, zararli kod , 16 daq
- 5.10-bob: Error handling middleware, global error handler2.12-bobda JavaScript'da xatolarni o'rgandik. 5.6-bobda Express error middleware'ni , 5.9-bobda validatsiya xatolarini ko'rdik. Endi hammasini birlashtirib, butun ilovadagi xatolarni bir joyda, izchil18 daq
- 5.11-bob: File upload — Multer (lokal va cloud)Backend infratuzilmasini qurdik. Endi deyarli har bir real ilovada uchraydigan amaliy vazifani — fayl yuklashni — o'rganamiz: profil rasmi , mahsulot suratlari , hujjatlar , import fayllari .17 daq
- 5.12-bob: Logger — Winston / Pino (chuqur)Error handling da xatolarni log qilishni tilga oldik; fayl yuklashda ham. Endi professional loggingni — production'da nima bo'layotganini ko'rishning yagona yo'lini — chuqur o'rganamiz.16 daq
- 5.13-bob: Real-time — WebSocket va Socket.io (xonalar, eventlar, namespace)Hozirgacha qurgan hamma narsamiz — Express , REST — so'rov-javob modeliga asoslangan: client so'raydi, server javob beradi. Client gapirmaguncha, server jim turadi. Bu — ko'p narsa uchun yetarli . Lek27 daq
- 5.14-bob: Telegram bot — node-telegram-bot-api va TelegrafReal-time aloqani bildik. Endi O'zbekistonda juda keng tarqalgan, amaliy va daromadli mavzuni — Telegram bot yaratishni — o'rganamiz. O'zbekistonda Telegram — eng ommabop ilova; deyarli har bir biznes22 daq
- 5.15-bob: Autentifikatsiya — session, cookie, JWT, bcryptEndi backend'ning eng muhim, eng ko'p so'raladigan mavzusiga keldik: autentifikatsiya — foydalanuvchi kimligini aniqlash. Har bir real ilovada bu bor: ro'yxatdan o'tish, login, "tizimga kirgan holda q24 daq
- 5.16-bob: Access/Refresh tokens, token strategiyasi5.15-bobda JWT bilan autentifikatsiyani o'rgandik va oxirida uning katta kamchiligini ko'rdik: JWT stateless — server uni eslamaydi, shuning uchun bekor qilib bo'lmaydi. Token o'g'irlansa yoki foydala17 daq
- 5.17-bob: Authorization — RBAC (role-based access control)5.15 va 5.16-boblarda authentication ni o'rgandik. Endi ikkinchi yarmiga — authorization ga o'tamiz. Bu ikkisi har doim birga: avval "kim siz?" , keyin "bu ishni qilishga haqlimisiz?" .16 daq
- 5.18-bob: OTP va SMS integratsiyasi (Eskiz / Play Mobile)Autentifikatsiya tizimini qurdik. Endi O'zbekistonda juda keng tarqalgan, deyarli har bir ilovada uchraydigan amaliy mavzuni — telefon raqami orqali tasdiqlash va SMS yuborish ni — o'rganamiz. O'zbeki17 daq
- 5.19-bob: Email — Nodemailer5.18-bobda SMS yuborishni o'rgandik. Endi ikkinchi muhim aloqa kanalini — email yuborishni — o'rganamiz. Email — backend'ning eng ko'p uchraydigan vazifalaridan biri: ro'yxatdan o'tishni tasdiqlash xa17 daq
- 5.20-bob: Xavfsizlik — Rate limiting, helmet, CORSBackend qurishni o'rgandik: server, REST, auth, email/SMS . Lekin barchasi xavfsiz bo'lishi shart. Bu bobda har Express ilovaning majburiy himoya qatlamini — uch asosiy vositani — o'rganamiz: helmet ,16 daq
- 5.21-bob: Caching — Redis (chuqur)Bir necha bobda Redisni eslatdik: session store , OTP saqlash , rate limit , Socket.io adapter , Telegraf sessiya . Endi uni to'liq, chuqur o'rganamiz — chunki Redis backend dasturchining eng kuchli v19 daq
- 5.22-bob: Navbatlar (Queues) — BullMQ, fon vazifalari, cronRedis'ni o'rgandik. Endi uning ustida quriladigan muhim mexanizmni — navbat va fon vazifalari ni — o'rganamiz. Bu — yuqori sifatli, masshtablanadigan backend'ning muhim qismi.18 daq
- 5.23-bob: API hujjatlari — Swagger / OpenAPI5-QISMning yakuniy bobiga keldik. Backend'ni to'liq qurdik: server, REST, auth, validatsiya, fayl, real-time, navbat . Endi muhim, lekin ko'pincha e'tibordan chetda qoladigan mavzuni — API'ni hujjatla15 daq
6-QISM — Database
- 6.1-bob: Ma'lumotlar bazasi asoslari — SQL vs NoSQL5-QISMda backend qurdik va ko'p marta "DB'ga saqlaymiz", "DB'dan olamiz" deb o'tdik . Endi backend'ning yuragiga — ma'lumotlar bazasi ga — yetib keldik. Har bir real ilova ma'lumotni biror joyda doimi20 daq
- 6.2-bob: MongoDB va Mongoose — CRUD, schema, model, query6.1-bobda nazariy poydevorni qo'ydik . Endi amaliyotga o'tamiz — eng mashhur NoSQL bazasi MongoDB va Node.js uchun eng mashhur ODM Mongoose bilan ishlashni o'rganamiz. Bu — sizning stack'ingdagi asosi19 daq
- 6.3-bob: MongoDB chuqur — aggregation pipeline, indekslar, relations6.2-bobda MongoDB'ning asosiy CRUD'ini o'rgandik. Endi uning kuchli, professional imkoniyatlariga o'tamiz — bularsiz "MongoDB bilaman" deyish qiyin: aggregation pipeline , indekslar , va relations . B19 daq
- 6.4-bob: SQL asoslari — CREATE, INSERT, SELECT, UPDATE, DELETE, WHEREMongoDB dunyosini chuqur ko'rdik . Endi ikkinchi katta dunyoga — relatsion ma'lumotlar bazasi va SQL tiliga — o'tamiz. Bu — dasturlashning eng qadimiy, eng barqaror, eng keng tarqalgan texnologiyalari19 daq
- 6.5-bob: MySQL (Express bilan)6.4-bobda SQL tilini o'rgandik . Endi uni amalda — eng mashhur relatsion DB'lardan biri MySQL ni Node.js/Express bilan ulashni o'rganamiz. MySQL — dunyodagi eng keng tarqalgan ochiq kodli SQL DB . Siz18 daq
- 6.6-bob: PostgreSQL (chuqur), pg kutubxonasi, foreign keysMySQL'ni ko'rdik. Endi eng kuchli, zamonaviy, ochiq kodli relatsion DB — PostgreSQL ni chuqur o'rganamiz. PostgreSQL — bugungi kunda zamonaviy backend uchun eng ko'p tavsiya etiladigan SQL DB. Sababi:19 daq
- 6.7-bob: SQL chuqur — JOIN turlari, subquery, CTE, window functionsAsosiy SQL'ni va ikki DB'ni bildik. Endi SQL'ning eng kuchli, professional qismiga o'tamiz — bu qism SQL'ni "o'rtacha"dan "ekspert"ga ko'taradi va sizni boshqalardan ajratadi: JOIN , subquery , CTE , 20 daq
- 6.8-bob: Stored procedures, functions, triggers, viewsSQL so'rovlarini ekspert darajada bildik. Endi DB'ning yana bir kuchli, lekin ko'pincha noma'lum qirrasiga o'tamiz: DB ichida mantiq saqlash. Hozirgacha biz so'rovlarni ilovadan yubordik. Lekin SQL DB18 daq
- 6.9-bob: Normalizatsiya (1NF–3NF), tranzaksiyalar (ACID), izolyatsiya darajalariSQL'ni amaliy va ekspert darajada o'rgandik. Endi relatsion DB'ning ilmiy/nazariy asoslariga — DB dizaynining poydevoriga — o'tamiz: normalizatsiya va tranzaksiyalar + izolyatsiya darajalari . Bu mavz19 daq
- 6.10-bob: Indekslar va query optimization, EXPLAINToza DB dizayni va yaxlitlik ni bildik. Endi DB'ning eng amaliy, production'da eng muhim mavzusiga — tezlikka — o'tamiz: indekslar , query optimization , va EXPLAIN . Bu mavzu — ilovangiz sekin yoki t18 daq
- 6.11-bob: ORM — Sequelize (model, relations, migration)Xom SQL'ni chuqur o'rgandik — bu poydevor. Endi ORM ga o'tamiz: SQL'ni JavaScript obyektlari bilan ishlash. ORM — relatsion DB jadvallari va qatorlarini JS class va obyektlariga moslashtiruvchi qatlam21 daq
- 6.12-bob: ORM — Prisma (schema, migrate, client, relations)Sequelize ni bildik. Endi zamonaviy, type-safe ORM — Prisma ga o'tamiz. Prisma — bugungi kunda yangi loyihalar uchun eng ko'p tavsiya etiladigan ORM . Sababi: u boshqacha, deklarativ yondashuvni qo'll22 daq
- 6.13-bob: ORM — TypeORM (entity, repository, relations)Sequelize va Prisma ni bildik. Endi uchinchi va oxirgi ORM — TypeORM ni o'rganamiz. TypeORM — yana boshqacha yondashuv: class va dekorator asosida. Model — oddiy TypeScript class, dekoratorlar bilan b19 daq
- 6.14-bob: Migration va seeding strategiyalariUch ORM'ni o'rgandik va har birida migration ni ko'rdik. Endi migration'ning strategiyalarini — ORM-mustaqil, kontseptual darajada — chuqur o'rganamiz: schema'ni vaqt o'tishi bilan xavfsiz boshqarish,16 daq
- 6.15-bob: Connection pooling va ER modeling (DB dizayni)6-QISMning yakuniy bobiga keldik. Butun qism davomida DB asoslari , MongoDB , SQL , ORM'lar — hammasini o'rgandik. Bu bob ikki muhim, yakunlovchi mavzuni birlashtiradi: connection pooling va ER modeli19 daq
7-QISM — TypeScript
- 7.1-bob: TypeScript kirish — nega TS, o'rnatish, tsconfigJavaScript'ni chuqur, backend va DB ni amalda o'rgandik. Yo'lda ko'p marta TypeScriptni ko'rdik: Prisma type-safe, TypeORM dekorator, NestJS butunlay TS'da. Endi TypeScript'ni boshidan, chuqur, mustaq17 daq
- 7.2-bob: Asosiy turlar, interface, type alias, enum7.1-bobda TypeScript'ni sozlashni bildik . Endi uning yuragiga — turlar tizimiga — kiramiz. Bu — TypeScript bilan haqiqiy ishlashning boshlanishi. Asosiy turlar , interface , type alias , va enum — bu19 daq
- 7.3-bob: Funksiyalar va Generics (chuqur)Turlar asosini bildik. Endi ikki muhim mavzuga o'tamiz: funksiya turlari va TS'ning eng kuchli, eng zarur xususiyati — generics . Generics — boshlovchilar uchun eng "qo'rqinchli" ko'rinadigan, lekin e19 daq
- 7.4-bob: Ilg'or turlar — union, intersection, conditional, mapped, utility typesTurlar va generics ni bildik. Endi TS'ning eng kuchli, "sehrli" qismiga — ilg'or turlarga — o'tamiz. Bu mavzu TS'ni boshqa tillardan keskin ajratadi: TS turlar tizimi shunchalik kuchliki, u turlar ust20 daq
- 7.5-bob: Type guards, narrowing, type assertionsTurlarni — oddiy , generic , ilg'or — bildik. Endi ularni ishlatishda muhim ko'nikmani — narrowing — o'rganamiz. Bu — TS bilan kundalik ishlashning amaliy yuragi. Union turlar bilan ishlaganda, TS ani19 daq
- 7.6-bob: Decorators (dekoratorlar)Turlar tizimini to'liq bildik. Endi TS'ning maxsus, kuchli xususiyatini — decorators — o'rganamiz. Dekorator — class, metod, xususiyat yoki parametrga "yorliq" qo'shuvchi maxsus sintaksis . Ko'p marta16 daq
- 7.7-bob: TS bilan Node/Express loyihasi — declaration files, modullar7-QISMning yakuniy bobiga keldik. TypeScript bilimini — sozlash , turlar , generics , ilg'or turlar , narrowing , decorators — to'liq o'rgandik. Endi hammasini amalda birlashtiramiz: to'liq, professio18 daq
8-QISM — NestJS
- 8.1-bob: NestJS kirish — arxitektura, modules, controllers, providersTypeScript , Node.js backend , DB ni chuqur bildik. Endi ularni birlashtiruvchi, zamonaviy, korporativ darajadagi framework — NestJS ni o'rganamiz. Bu — sizning backend kareyrangizning eng muhim qismi24 daq
- 8.2-bob: Dependency Injection (chuqur)8.1-bobda NestJS arxitekturasini va dependency injection ni qisqacha ko'rdik. Endi uni — NestJS'ning eng muhim, eng kuchli, butun sehrining asosi bo'lgan mexanizmni — chuqur o'rganamiz. DI'ni tushunma29 daq
- 8.3-bob: DB ulanish — TypeORM / Prisma / Mongoose bilanNestJS arxitekturasi va DI ni chuqur bildik. Endi NestJS'ni ma'lumotlar bazasiga ulaymiz — har real ilovaning yuragi. 6-QISMda ORM'larni mustaqil o'rgandik; endi ularni NestJS ichida — DI bilan integr26 daq
- 8.4-bob: Relations (1:1, 1:N, N:M)NestJS'ni DB'ga uladik . Endi real ilovaning ma'lumot modelining yuragiga — bog'lanishlarga — o'tamiz. Hech bir jiddiy ilova bitta jadval emas: foydalanuvchi va uning buyurtmalari, buyurtma va mahsulo26 daq
- 8.5-bob: DTO, validation pipesMa'lumot modeli tayyor. Endi backend'ning birinchi himoya chizig'iga — kiruvchi ma'lumotni tekshirishga — o'tamiz. 5.9-bobda "Hech qachon foydalanuvchiga ishonmang" tamoyilini va Zod/Joi/class-validat23 daq
- 8.6-bob: Guards, Interceptors, Middleware, Exception Filters (chuqur)DTO/validatsiyani bildik. Endi NestJS'ning eng kuchli, "sehrli" mexanizmlariga — request lifecycle qatlamlariga — o'tamiz: Middleware, Guards, Interceptors, Exception Filters . Bular — cross-cutting c22 daq
- 8.7-bob: User–Role–Auth, RBAC (ruxsatlarni boshqarish)Guards va enhancer mexanizmlarini bildik. Endi ularni ishlatib, NestJS'da to'liq RBAC tizimini quramiz. 5.17-bobda RBAC'ni Express'da nazariy/amaliy ko'rdik; endi NestJS'da — guard, custom dekorator, 22 daq
- 8.8-bob: File upload, SwaggerRBAC'ni bildik. Endi ikki amaliy, har real API'da kerak bo'ladigan mavzuni — NestJS'da fayl yuklash va Swagger — o'rganamiz. Ikkalasi 5-QISMda mustaqil ko'rilgan edi ; endi NestJS'da — dekorator va in22 daq
- 8.9-bob: Autentifikatsiya — JWT, Passport, cookie, refresh tokenEndi NestJS'ning eng muhim, eng ko'p so'raladigan mavzusiga keldik — autentifikatsiya. Bu — har NestJS ilovaning yuragi, va karyerangizda deyarli har loyihada quradigan tizim. 5.15-5.16 boblarda auth 22 daq
- 8.10-bob: Email (Nodemailer), guard va tokenlar amaliyotiAuth'ni bildik. Endi uni amaliy to'ldiramiz: NestJS'da email va auth jarayonining muhim qismlarini — email tasdiqlash va parolni tiklash — guard/token bilan birlashtiramiz. Bu — har real auth tizimini23 daq
- 8.11-bob: Testing — Jest, unit test va e2e test (chuqur)Auth/email ni bildik. Endi NestJS'ning professional, ish sifatini belgilaydigan qismiga — testlash ga — o'tamiz. Test — havaskor va professional dasturchini eng aniq ajratadigan ko'nikma: kod ishlaydi27 daq
- 8.12-bob: NestJS Telegram bot (Telegraf) — barcha imkoniyatlarTest'ni bildik. Endi eng amaliy, eng "ko'rinadigan" mavzulardan biriga — NestJS'da Telegram bot — o'tamiz. Bu bobda botning qila oladigan deyarli BARCHA imkoniyatini ko'rib chiqamiz: oddiy buyruqdan t27 daq
- 8.13-bob: NestJS + MongoDB (Mongoose chuqur)Bot'ni bildik. Endi NestJS'da MongoDB ni — eng mashhur NoSQL bazani — chuqur ko'ramiz. 6.2-6.3'da Mongoose'ni mustaqil o'rgandik ; 8.3'da DB ulanishni umumiy ko'rdik. Endi NestJS'da @nestjs/mongoose b24 daq
- 8.14-bob: Config moduli — env, validatsiya, namespaced configMongoDB'ni bildik. Endi shu paytgacha deyarli har bobda ishlatgan ConfigServiceni — NestJS'ning konfiguratsiya tizimini — chuqur o'rganamiz. 5.8'da dotenv va env o'zgaruvchilarini Express'da ko'rdik; 18 daq
- 8.15-bob: Caching (Redis), Logger, Error handlingConfig'ni bildik. Endi production ilovaning ishlash , kuzatuv, barqarorlik uchun zarur uchta mavzuni — caching , logger, error handling — NestJS'da chuqur ko'ramiz. 5.21'da Redis caching'ni, 5.12'da l21 daq
- 8.16-bob: Microservices — NestJS mikroservislarProduction poydevorini bildik. Endi NestJS'ning ilg'or arxitektura mavzusiga — mikroservislar ga — o'tamiz. Shu paytgacha monolit qurdik. Mikroservis — ilovani mustaqil, kichik xizmatlarga bo'lish . B25 daq
- 8.17-bob: GraphQL — NestJS GraphQLMikroservislarni bildik. Endi REST'ga muqobil API uslubini — GraphQL ni — o'rganamiz. Shu paytgacha barcha API'larimiz REST edi . GraphQL — boshqa falsafa: bitta endpoint, va mijoz aniq kerakli ma'lum26 daq
- 8.18-bob: WebSockets gateway va Task scheduling (cron)GraphQL'ni bildik. Endi 8-QISM ning so'nggi ikki amaliy mavzusini — WebSockets va task scheduling — NestJS'da chuqur ko'ramiz. 5.13'da Socket.io'ni, 5.22'da cron/navbatni Express'da o'rgandik; endi Ne23 daq
- 8.19-bob: To'lov tizimlari (Payment) — Click, Payme, Stripe (to'liq)Bu — kitobning eng amaliy, eng ko'p pul keltiradigan boblaridan biri: to'lov tizimlari . Har bir jiddiy loyiha — internet do'kon, taksi, yetkazib berish, SaaS obuna, kurs platformasi — pul qabul qilis27 daq
- 8.20-bob: Webhook'lar va idempotencyPayment da webhook'ni qisman ko'rdik — endi uni mustaqil, to'liq mavzu sifatida o'rganamiz, chunki webhook faqat to'lovda emas, har joyda uchraydi: GitHub , Telegram , SMS , Stripe , CI/CD , va siznin22 daq
- 8.21-bob: Hujjat generatsiya — PDF, Excel, CSVEndi yana bir har loyihada uchraydigan real mavzu — hujjat generatsiya . Mijoz buyurtma qilgach chek kerak ; admin hisobot yuklab olmoqchi ; buxgalter ma'lumotni eksport qiladi ; yoki katta ma'lumot i25 daq
- 8.22-bob: Kuchli qidiruv — Elasticsearch, MeilisearchEndi yana bir har real loyihada kerak bo'ladigan mavzu — kuchli qidiruv . Har e-commerce , kontent platforma , bozor , ish topish sayti — sifatli, tez, xato-bardosh qidiruvga muhtoj. 6.3 va 6.7 da DB 27 daq
- 8.23-bob: Push bildirishnoma — Firebase FCMEndi yana bir real mavzu — push bildirishnoma . Bu — foydalanuvchi ilovani ochmasa ham, uning telefon/brauzeriga darrov xabar yuborish: "Buyurtmangiz yo'lda", "Yangi xabar keldi", "50% chegirma!", "To34 daq
- 8.24-bob: Rasm/media qayta ishlash — sharp5.11 va 8.8'da fayl yuklashni ko'rdik — endi yuklangan rasmni qayta ishlash ni o'rganamiz. Bu — har rasm bilan ishlaydigan loyihada kerak bo'ladigan real mavzu. Muammo: foydalanuvchi 8 megabaytli, 40028 daq
- 8.25-bob: Multi-tenancy (SaaS)Endi zamonaviy biznes modelining — SaaS — texnik asosini, multi-tenancy ni o'rganamiz. SaaS — bir ilovani ko'p mijoz-kompaniyaga xizmat sifatida sotish: bitta kodbaza, bitta deploy, lekin har kompaniy30 daq
- 8.26-bob: Audit log va faoliyat tarixiEndi yana bir real, ayniqsa jiddiy tizimlarda zarur mavzu — audit log . Bu — "kim, nima, qachon, qayerdan qildi" degan savolga javob beradigan o'zgarmas yozuvlar: "Admin Ali 2026-06-22 14:30 da 5-mijo27 daq
- 8.27-bob: API versioningEndi API'ni vaqt o'tib o'zgartirish muammosini hal qiladigan mavzu — API versioning . Tasavvur qiling: sizning API'ngizdan mobil ilova , tashqi hamkorlar , va veb sayt foydalanadi. Endi siz API javobi21 daq
- 8.28-bob: Geolokatsiya va xaritalarEndi joylashuvga oid real mavzu — geolokatsiya . O'zbekistonda eng ko'p o'sayotgan ilovalar — yetkazib berish , taksi , kuryer, "eng yaqin filial/bankomat" — barchasi joylashuv bilan ishlaydi: foydala27 daq
- 8.29-bob: Subscription va davriy to'lov (recurring billing)Payment da bir martalik to'lovni ko'rdik; multi-tenancy da SaaS arxitekturasini. Endi ikkalasini bog'laydigan, SaaS biznesining moliyaviy yuragi — obuna va davriy to'lov — ni o'rganamiz. SaaS, kurs pl30 daq
- 8.30-bob: i18n (ko'p til) backendBu — 8-QISM va "real amaliy mavzular" turkumining yakuniy bobi: i18n . O'zbekistonda deyarli har ilova kamida uch tilda ishlashi kerak: o'zbek, rus, ingliz. Va xalqaro bozorga chiqsangiz — yana ko'pro34 daq
9-QISM — Arxitektura
- 9.1-bob: SOLID prinsiplari8-QISM bilan backend texnologiyalarini chuqur o'rgandik. Endi 9-QISM'da boshqa darajaga — kodni qanday to'g'ri tashkil qilish — o'tamiz. Texnologiyani bilish — bir narsa; uni toza, kengaytiriladigan, 27 daq
- 9.2-bob: Design Patterns (dizayn naqshlari)SOLID tamoyillarini bildik. Endi ularni amalga oshiradigan tayyor, sinovdan o'tgan yechimlarni — design pattern'lar — o'rganamiz. Design pattern — keng tarqalgan dasturlash muammolariga takrorlanadiga33 daq
- 9.3-bob: Clean Architecture, Layered, HexagonalSOLID va design pattern'larni bildik. Endi ularni butun ilova darajasida tashkil qiladigan arxitektura uslublarini — Layered, Hexagonal , Clean Architecture — o'rganamiz. Bu — kichik darajadagi tamoyi27 daq
- 9.4-bob: Domain-Driven Design (DDD) asoslariClean Architecture bilan ilovani qatlamlarga ajratdik — biznes mantiq markazda. Endi shu markaziy qatlamni — domen ni — qanday chuqur modellashtirish ni o'rganamiz: Domain-Driven Design . DDD — Eric E30 daq
- 9.5-bob: Monolith vs Microservices — qachon qaysi biri8.16'da NestJS mikroservislarini texnik jihatdan ko'rdik . Endi shu mavzuni arxitektura qarori sifatida — chuqur, balansli, real tajriba asosida — o'rganamiz. Bu — senior dasturchi va junior'ni eng an27 daq
- 9.6-bob: Service communication — REST, gRPC, message queuesMikroservis qarorini bildik . Endi eng muhim amaliy savol: ular qanday gaplashadi? Monolitda modullar funksiya chaqiruvi orqali ; lekin mikroservislar tarmoq orqali . Bu — mikroservis arxitekturasinin35 daq
- 9.7-bob: Event-driven architecture, CQRS, Event SourcingAloqa usullarini bildik — endi asinxron event'lar atrofida qurilgan uchta kuchli, ilg'or arxitektura naqshini o'rganamiz: Event-Driven Architecture , CQRS , Event Sourcing . Bular — murakkab, masshtab32 daq
- 9.8-bob: API Gateway va service discoveryXizmatlar qanday gaplashishini va event naqshlarini bildik. Endi mikroservis arxitekturasining ikki muhim infratuzilma qismini — API Gateway va service discovery — chuqur o'rganamiz. 8.16'da Gateway'n30 daq
- 9.9-bob: Caching strategiyalari, scalability, load balancingEndi tizimni tez va katta yukka chidamli qiladigan uchta asosiy mavzuni — caching strategiyalari , scalability , load balancing — o'rganamiz. Bu — "ilovam 100 foydalanuvchiga ishlaydi, lekin 100000 ga42 daq
- 9.10-bob: Distributed systems, CAP teoremasi9-QISM ning yakuniy va eng nazariy-fundamental mavzusi — taqsimlangan tizimlar va CAP teoremasi. Shu paytgacha o'rgangan mavzularimiz — mikroservis , replication/sharding , eventual consistency — barc32 daq
10-QISM — DevOps
- 10.1-bob: Linux server asoslari va SSH9-QISM da kodni qanday to'g'ri yozish ni o'rgandik. Lekin eng zo'r yozilgan kod ham sizning kompyuteringizda turib qolsa — hech kimga foydasi yo'q. Endi 10-QISM'da boshqa dunyoga o'tamiz: kodni real s34 daq
- 10.2-bob: Nginx (reverse proxy, load balancer)10.1-bobda biz bo'sh serverni xavfsiz sozlab, Node.js ilovamizni systemd xizmati sifatida ishga tushirdik — u 3000-portda ishlayapti . Lekin bu yerda muammo bor: foydalanuvchi brauzerda http://203.0.139 daq
- 10.3-bob: Docker — image, container, Dockerfile10.1da bo'sh serverni xavfsiz sozladik, 10.2da Nginx bilan so'rovlarni boshqardik. Lekin bir muammo hali ham bor — eng mashhur dasturchi iborasi: "mening kompyuterimda ishlayapti" . Dasturchi ilovani 37 daq
- 10.4-bob: Docker Compose va multi-stage build10.3da bitta ilovani Docker image'ga qadoqlab, docker run bilan ishga tushirdik. Lekin real loyiha hech qachon bitta konteyner emas. Oddiy backend ilovasini eslang: NestJS ilovasi ishlaydi, lekin u Po34 daq
- 10.5-bob: CI/CD — GitHub ActionsShu paytgacha 10-QISM'da kodni serverga qo'lda chiqarishni o'rgandik: SSH bilan ulanamiz , rsync bilan fayllarni yuboramiz , systemctl restart qilamiz , yoki Docker image qurib docker push qilamiz . B44 daq
- 10.6-bob: Cloud — AWS (EC2, S3, RDS, Lightsail)Shu paytgacha 10-QISM'da ilovani bitta serverga chiqarishni o'rgandik: Linux server va SSH , Nginx , Docker , CI/CD avtomatik deploy . Lekin doim bitta savol qoladi: o'sha server o'zi qayerdan keladi?41 daq
- 10.7-bob: Deployment strategiyalari — PM2, domen, SSL10.1-bobda biz bo'sh serverni xavfsiz sozladik , 10.2-bobda Nginx'ni reverse proxy qildik , 10.3-10.4'da ilovani Docker'ga o'radik, 10.5'da CI/CD bilan avtomatik chiqarishni o'rgandik va 10.6'da bulut45 daq
- 10.8-bob: Kubernetes asoslari10.4da Docker Compose bilan butun stack'ni — ilova, PostgreSQL, Redis, Nginx — bitta compose.yaml faylda, bir buyruq bilan ko'tarishni o'rgandik. Bu — kichik va o'rta loyiha uchun ajoyib yechim, holat39 daq
- 10.9-bob: Monitoring va logging — Prometheus, Grafana, Sentry10-QISM'da kodimizni real dunyoga chiqardik: Linux serverga joyladik , Nginx ortiga qo'ydik , Docker'ga o'radik , CI/CD bilan avtomatik deploy qildik , Kubernetes'da bir necha nusxada ishlatdik . Endi33 daq
- 10.10-bob: Infrastructure as Code — Terraform asoslari10-QISM'da biz infratuzilmani bosqichma-bosqich qurdik: Linux server va SSH , Nginx , Docker , CI/CD , AWS cloud xizmatlari , deploy strategiyalari , Kubernetes va monitoring . Lekin 10.6 da AWS resur41 daq
- 10.11-bob: Environment va secrets boshqaruvi10-QISM bo'ylab ilovani serverga chiqardik , Nginx ortiga qo'ydik , Docker'ga o'radik , CI/CD bilan avtomatik deploy qildik , bulutga joyladik , domen va SSL ulab production'ga oldik , Kubernetes'da m38 daq
11-QISM — React
- 11.1-bob: Brauzerda HTML/CSS/JS takrori va DOM API (CRUD)5–10 QISM'larda biz backend dunyosini chuqur o'rgandik: Node.js, API, ma'lumotlar bazasi, NestJS, arxitektura, DevOps. Backend — bu sahnaning orqasi : ma'lumotni saqlaydi, hisoblaydi, qaytaradi. Endi 39 daq
- 11.2-bob: React kirish — JSX, komponentlar, props11.1-bobda biz vanilla DOM bilan ilova yozdik va uning og'rig'ini his qildik: har o'zgarishda render ni qo'lda chaqirish, qaysi DOM bo'lagini yangilashni eslab qolish, ma'lumot va ko'rinish ni qo'lda 33 daq
- 11.3-bob: React loyiha tuzilishi va Vite11.2-bobda komponent, JSX va props'ni o'rgandik — lekin kodni faqat "havoda" yozdik. Endi savol: bu kod qayerda yashaydi va brauzer uni qanday ishlatadi? Axir biz aytdik — brauzer JSX'ni tushunmaydi ,40 daq
- 11.4-bob: State, hodisalar, shartli render, ro'yxatlar va keys11.2-bobda komponent va props'ni, 11.3-bobda Vite loyihasini o'rgandik — lekin ilovamiz hali jonsiz. Foydalanuvchi tugmani bossa, matn yozsa, hech narsa o'zgarmaydi. Sababi oddiy: komponentlarimizda x41 daq
- 11.5-bob: Hooks — useState, useEffect, useContext, useRef11.4-bobda useState bilan birinchi hook'ni ishlatdik va ilovamizga "xotira" berdik. Lekin useState — bu butun bir oilaning faqat bitta a'zosi. Hooklar — bu React'ning eng katta inqilobi : ular funksiy45 daq
- 11.6-bob: useMemo, useCallback, useReducer11.5-bobda to'rtta asosiy hookni o'rgandik. Endi hooklar bilimini yana uchta muhim hook bilan yakunlaymiz — va bu uchchovi ikkita katta mavzuga bo'linadi. Birinchisi — useReducer — useStatening kuchli37 daq
- 11.7-bob: Custom hooks (o'z hooklaringni yozish)11.5 va 11.6-boblarda React'ning o'rnatilgan hooklarini — useState, useEffect, useContext, useRef, useReducer, useMemo, useCallback — chuqur o'rgandik. Endi React'ning eng nafis va eng kuchli imkoniya47 daq
- 11.8-bob: React.lazy, Suspense va code splitting11.1–11.7-boblarda React'ning yadrosini — komponentlar, state, hooklar — chuqur o'rgandik. Ilovamiz endi interaktiv va kuchli. Lekin ilova o'sgani sayin yangi muammo paydo bo'ladi: kod hajmi kattalash37 daq
- 11.9-bob: Routing (React Router)Shu paytgacha yozgan ilovalarimiz bitta ekrandan iborat edi. Lekin haqiqiy ilova — ko'p sahifali: bosh sahifa, mahsulotlar, mahsulot tafsiloti, savat, profil, sozlamalar, login... Foydalanuvchi /produ44 daq
- 11.10-bob: Formalar — React Hook Form + Zod validationForma — har ilovaning eng ko'p uchraydigan, lekin eng ko'p og'riq beradigan qismi: login, ro'yxatdan o'tish, checkout, profil sozlamalari, mahsulot qo'shish, izoh yozish — bularning hammasi forma. 11.50 daq
- 11.11-bob: Performance optimizatsiya (memo, re-render)11.6-bobda memo, useMemo, useCallbackni o'rgandik va "qachon optimallashtirMaslik" tamoyilini ko'rdik. Endi shu vositalarni performance rakursidan birlashtirib, React ilovasini tezlashtirish san'atini42 daq
- 11.12-bob: Error boundaries, portals, refs (ilg'or)Shu paytgacha React'ning asosiy oqimini — komponent, state, hooklar, routing, forma, performance — chuqur o'rgandik. Endi uchta ilg'or imkoniyatni ko'ramiz, ular oddiy ilovada doim ko'rinmaydi, lekin 38 daq
- 11.13-bob: React pattern'lar — HOC, render props, compound components11.7-bobda custom hooklar bilan mantiqni qayta ishlatishni o'rgandik — bu zamonaviy React'ning asosiy usuli. Lekin React 7+ yil tarixga ega va hooklardan oldin ham mantiq va UI'ni qayta ishlatish kera43 daq
- 11.14-bob: TypeScript bilan React7-QISM'da TypeScript'ni o'rgandik — turlar, interface, generics, utility types. Endi uni React bilan birlashtiramiz, va bu birikma — zamonaviy professional React loyihasining standarti. 2026-yilda dey44 daq
- 11.15-bob: Dashboard loyiha — layout, authShu paytgacha 11-QISM'da React'ning har bir qismini alohida o'rgandik: komponent, state, hooklar, code splitting, routing, forma, performance, ilg'or naqshlar, TypeScript. Endi ularning hammasini bitt47 daq
- 11.16-bob: Swiper va animatsiya (Framer Motion)11.15-bobda to'liq, funksional dashboard qurdik. U ishlaydi, lekin biroz "jonsiz" — elementlar darrov paydo bo'ladi va yo'qoladi, o'tishlar keskin, hech narsa "his qilinmaydi". Endi ilovamizni jonli v45 daq
- 11.17-bob: Testing — Vitest, React Testing Library, Playwright11-QISM davomida React ilovasini qurishni to'liq o'rgandik: komponent, state, hooklar, routing, forma, performance, animatsiya. Ilovamiz funksional va chiroyli. Lekin u ishonchlimi? Siz yangi feature 37 daq
12-QISM — State Management
- 12.1-bob: Context API (chuqur)11-QISM da biz Context'ni bir necha marta — auth , theme , custom hook bilan , TypeScript bilan — ko'rib o'tdik. Endi 12-QISM ning birinchi bobida unga chuqur kiramiz: Context aslida nima, ichida qand34 daq
- 12.2-bob: Redux Toolkit (store, slice, async thunk)12.1-bobda Context'ni chuqur o'rgandik va uning cheklovlarini ko'rdik: selektor yo'q , katta/tez o'zgaradigan state'da ko'p re-render, va DevTools/debugging imkoniyatlari cheklangan. Aynan shu cheklov39 daq
- 12.3-bob: RTK Query12.2-bobda Redux Toolkit bilan client state'ni boshqardik va createAsyncThunk bilan server'dan ma'lumot olishni ko'rdik. Lekin u yerda muhim ogohlantirish bordi: server ma'lumoti uchun createAsyncThun44 daq
- 12.4-bob: TanStack Query (React Query)12.3-bobda RTK Query bilan server-state'ni boshqardik — kesh, invalidation, optimistic update. Lekin RTK Query'ning bir cheklovi bor: u Redux'ga bog'liq . Agar loyihangizda Redux bo'lmasa , RTK Query 41 daq
- 12.5-bob: Zustand12.1-bobda Context'ni, 12.2-bobda Redux Toolkit'ni o'rgandik. Context — oddiy, lekin selektor yo'q . Redux — kuchli, lekin biroz boilerplate va sozlama talab qiladi. Ikkalasining o'rtasida — yengil, o45 daq
- 12.6-bob: UI kutubxonalar — shadcn/ui, MUI, Ant Design12-QISM davomida state va ma'lumotni boshqarishni o'rgandik. Endi UI'ning o'ziga qaytamiz. Real ilovada siz yuzlab UI komponent — tugma, modal, dropdown, jadval, sana tanlagich , avtomatik to'ldiruvch39 daq
13-QISM — NextJS
- 13.1-bob: Next.js kirish — nega Next11-QISM va 12-QISM da biz React'ni chuqur o'rgandik va u bilan SPA qurdik: Vite + React + Router + Query. Bu juda kuchli, lekin SPA'ning bir necha tug'ma cheklovi bor edi: SEO qiyin — server bo'sh ind34 daq
- 13.2-bob: App Router va file-based routing13.1-bobda Next.js'ning fayl-asosli routing'i bilan tanishdik — app/products/page.tsx avtomatik /products bo'ladi. Endi shu routing'ni chuqur o'rganamiz: dinamik yo'llar , nested layouts , route group42 daq
- 13.3-bob: Server Components vs Client ComponentsBu — Next.js App Router'ning eng muhim, eng inqilobiy va eng ko'p chalkashtiriladigan tushunchasi. 13.1 va 13.2-boblarda biz "use client" va async komponentlarni ko'rdik, lekin endi ularning ortidagi 46 daq
- 13.4-bob: Rendering — SSR, SSG, ISR, CSR13.3-bobda Server va Client Components'ni — kod qaerda ishlashini — o'rgandik. Endi unga bog'liq, lekin alohida savolni ko'ramiz: sahifa qachon render bo'ladi? Ya'ni — HTML qaysi paytda yaratiladi? Bu45 daq
- 13.5-bob: Data fetching va Server Actions13.3 va 13.4-boblarda Server Components va rendering'ni o'rgandik — endi ma'lumot bilan ishlashning ikki yo'nalishini chuqur ko'ramiz: ma'lumotni olish va ma'lumotni o'zgartirish . SPA'da bu ikki nars52 daq
- 13.6-bob: Route Handlers va Middleware13.5-bobda Server Actions'ni — komponentdan to'g'ridan server funksiyasini chaqirishni — o'rgandik . Lekin ba'zan sizga haqiqiy REST API endpoint kerak bo'ladi: mobil ilova ma'lumot so'rasa, tashqi xi50 daq
- 13.7-bob: Caching va PerformanceNext.js'ning eng katta kuchi — tezlik. Lekin bu tezlik tasodifan emas: u ortida caching qatlamlari turibdi. Bu — Next.js'ning eng murakkab, eng ko'p chalkashtiriladigan, lekin eng muhim mavzularidan b53 daq
- 13.8-bob: Metadata, SEO va OptimizatsiyaEng zo'r sayt ham, agar uni hech kim topmasa, foydasiz. Foydalanuvchilar saytlarni ko'pincha Google qidiruvi orqali topadi . SEO — saytni Google, Bing kabi qidiruv tizimlarida yuqori o'ringa chiqarish54 daq
- 13.9-bob: Autentifikatsiya (NextAuth / Auth.js)Deyarli har real ilova bitta savolga javob berishi kerak: "Bu foydalanuvchi kim?" Onlayn do'kon , ijtimoiy tarmoq , bank ilovasi , admin panel — bularning hammasi autentifikatsiya va avtorizatsiya ga 56 daq
- 13.10-bob: Deploy va ProductionLoyihangiz tayyor — chiroyli, tez, xavfsiz. Lekin u sizning kompyuteringizda — uni hech kim ko'ra olmaydi. Deploy — ilovangizni internetga chiqarish, real foydalanuvchilar ko'radigan, ishlata oladigan55 daq
- 13.11-bob: Next.js — Yakuniy loyiha va amaliyot13-QISM davomida biz Next.js'ni bo'lak-bo'lak o'rgandik: App Router , Server/Client Components , rendering , data fetching va Server Actions , Route Handlers va Middleware , caching va performance , S35 daq
14-QISM — Xavfsizlik
- 14.1-bob: Web xavfsizligi va OWASP Top 10Siz chiroyli, tez, funksional ilova qurishni o'rgandingiz . Lekin bitta savol qoldi: u xavfsizmi? Internetda har kun millionlab avtomatik hujum bo'ladi , va bitta zaiflik — barcha foydalanuvchi ma'lum45 daq
- 14.2-bob: XSS (Cross-Site Scripting)XSS — eng keng tarqalgan, eng xavfli frontend hujumi. Mohiyati: hujumchi sahifaga yomon JavaScript kiritadi, va u boshqa foydalanuvchi brauzerida ishlaydi. Tasavvur qiling: izoh maydoniga <script yozi36 daq
- 14.3-bob: Injection (SQL, NoSQL, Command)14.2-bobda XSS — frontend injection — ni ko'rdik. Endi backend injection'ni ko'ramiz: hujumchi yomon ma'lumotni serverga yuborib, uni kod sifatida bajartiradi . Injection — OWASP Top 10'da A03 , va en32 daq
- 14.4-bob: CSRF va SSRFBu bobda ikki nomi o'xshash, lekin mohiyati boshqa bo'lgan hujumni ko'ramiz: CSRF va SSRF . CSRF — foydalanuvchini bilmasdan amal qildirishdir: hujumchi soxta sahifa quradi, foydalanuvchi o'sha sahifa30 daq
- 14.5-bob: Autentifikatsiya va parol xavfsizligiAutentifikatsiya — har ilovaning eshigi. Va eshik qulfini noto'g'ri qo'ysangiz — barcha ichkaridagi narsa xavfda. OWASP A07 — eng keng zaifliklardan: zaif parol siyosati, parolni ochiq saqlash, brute 37 daq
- 14.6-bob: Token va secrets xavfsizligi14.5-bobda foydalanuvchini tanidik . Endi savol: foydalanuvchi kirgandan keyin, har so'rovda uni qanday "eslab qolamiz" ? Javob — token . Eng keng — JWT — server foydalanuvchiga imzolangan "guvohnoma"53 daq
- 14.7-bob: HTTPS, CORS va xavfsizlik header'lariOldingi boblarda ilova ichidagi xavfsizlikni ko'rdik . Endi transport va brauzer sozlamalari darajasidagi himoyani ko'ramiz — ilovaning "tashqi qatlami". HTTPS — ma'lumotni shifrlaydi . CORS — qaysi s36 daq
- 14.8-bob: Rate limiting va DoS himoyasiHozirgacha biz ma'lum bitta so'rov orqali bo'ladigan hujumlarni ko'rdik . Endi ko'plik orqali bo'ladigan hujumlarni ko'ramiz: bir foydalanuvchi juda ko'p so'rov yuborib zarar yetkazadi. Rate limiting 44 daq
- 14.9-bob: Xavfsizlik auditi va yakuniy amaliyot14-QISM davomida har xavfsizlik mavzusini alohida o'rgandik: OWASP Top 10 , XSS , injection , CSRF/SSRF , auth , token/secrets , HTTPS/headers , rate limiting . Endi bularni birlashtiramiz va xavfsizl41 daq
15-QISM — Kasbiy konikmalar
- 15.1-bob: Toza kod va refactoringSiz endi ko'p texnologiyani bilasiz — ishlaydigan ilova qura olasiz. Lekin ishlaydigan kod va yaxshi kod o'rtasida katta farq bor. Real ishda kod bir marta yoziladi, lekin yuzlab marta o'qiladi . Toza41 daq
- 15.2-bob: Code review madaniyati15.1-bobda toza kod yozishni o'rgandik. Lekin real ishda siz yolg'iz emassiz — jamoada ishlaysiz, va kodingiz boshqa odamlar tomonidan tekshiriladi . Bu — code review : kod asosiy tarmoqqa qo'shilishd38 daq
- 15.3-bob: ESLint, Prettier, Husky va lint-staged15.1 va 15.2-boblarda toza kod va code review'ni o'rgandik. Lekin ikki savol qoldi: kod uslubini qo'lda izchil tutib bo'lmaydi ; code review'da odam format/uslubga vaqt sarflamasligi kerak . Yechim — 42 daq
- 15.4-bob: Monorepo (Turborepo / Nx)Tasavvur qiling: sizning loyihangizda frontend , mobil , backend , va ular umumiy kod ishlatadi . Bularni qanday tashkil qilasiz? Ikki yondashuv bor: polyrepo — har loyiha alohida repozitoriy — mustaq48 daq
- 15.5-bob: Debugging metodologiyasiHar dasturchi kunining katta qismini xatolarni tuzatishga sarflaydi — yangi kod yozishga emas. Kod hech qachon birinchi marta mukammal ishlamaydi . Va qanday debug qilish — havaskor va professional da45 daq
- 15.6-bob: Hujjat o'qish va texnik kommunikatsiyaTexnologiya juda tez o'zgaradi . Hech bir dasturchi hamma narsani yodlay olmaydi . Eng muhim ko'nikma — mustaqil o'rganish: kerakli ma'lumotni topish, hujjatni o'qib tushunish, va muammoga yechim qidi40 daq
- 15.7-bob: System Design intervyuYaxshi kompaniyalar ish suhbatida system design savolini berishadi: "URL qisqartiruvchi qanday quriladi?", "Instagram feed'ini qanday loyihalaysiz?", "millionlab foydalanuvchi uchun chat tizimi?". Bu 49 daq
- 15.8-bob: Portfolio, GitHub va open sourceSiz endi juda ko'p narsani bilasiz va qila olasiz . Lekin bitta qadam qoldi: bularni ko'rsatish. Ish topish uchun siz professional taqdimotingizni qurishingiz kerak: ish beruvchi sizning nima qila oli44 daq
16-QISM — Capstone loyihalar
- 16.1-bob: Capstone #1 — To'liq Production SaaSMana, butun safarning amaliy cho'qqisi. 0-15 QISM davomida siz har bir qismni — HTML/CSS'dan deploy'gacha, xavfsizlikdan professional ko'nikmalargacha — alohida o'rgandingiz. Endi bularni bitta to'liq25 daq
- 16.2-bob: Capstone #2 — Mikroservis arxitekturasidagi loyiha16.1-bobda monolit SaaS qurdik . Bu kichik-o'rta loyiha uchun ideal . Lekin tizim juda katta bo'lganda , monolit muammolar beradi: butun ilovani birga deploy qilish kerak , bir qism yuqori yuk — butun27 daq
- 16.3-bob: Capstone #3 — Real-time ilova (chat/notifications)Hozirgacha qurgan ilovalarimiz asosan so'rov-javob modelida edi: foydalanuvchi so'rov yuboradi , server javob beradi. Lekin zamonaviy ilovalarning ko'pi real-time : chat , bildirishnoma , jonli yangil31 daq
- 16.4-bob: Kitob yakuni — bitiruv va keyingi yo'lMana, biz keldik. 0-QISMda boshlagan safarimiz — bu yerda, mikroservis va real-time tizimlarda yakunlandi. Agar siz bu kitobni boshidan oxiriga o'qib, har bobda yozgan, har amaliy loyihani qurgan bo'l32 daq