System Design
System Design nima?
System Design — bu katta hajmdagi foydalanuvchilar va ma’lumotlarga xizmat ko’rsatadigan ishonchli, samarali va kengayuvchan dasturiy tizimlarni loyihalash san’ati va fanidir.
Nega System Design muhim?
Oddiy dastur yozish bilan katta tizim loyihalash o’rtasida katta farq bor:
- Kichik dastur: 100-1000 foydalanuvchi, bitta server, oddiy database
- Katta tizim: millionlab foydalanuvchi, yuzlab server, murakkab arxitektura
Real-world misollar
Twitter: har kuni 500 million+ tweet, soniyasiga 150,000+ so’rov
Netflix: 230+ million obunachi, kunlik 1+ milliard soat video
Uber: 130+ million aktiv foydalanuvchi, soniyasiga minglab so’rov
Bunday tizimlarni oddiy yondashuv bilan qurish mumkin emas.
System Design nima bilan shug’ullanadi?
1. Scalability (Kengayuvchanlik)
Foydalanuvchilar soni o’sishi bilan tizim qanday ishlaydi?
2. Reliability (Ishonchlilik)
Agar biror server ishlamay qolsa nima bo’ladi?
3. Performance (Ishlash tezligi)
Har bir so’rov necha millisekund davom etadi?
4. Maintainability (Ta’mirlanuvchanlik)
Yangi xususiyat qo’shish qanchalik oson?
System Design interview’lari
Ko’pchilik FAANG va boshqa texnologiya kompaniyalari system design bilishni talab qiladi:
Umumiy savol formati:
“Instagram kabi photo sharing ilovasini loyihalang"
"YouTube kabi video platformani qanday qurgan bo’lardingiz?”
Nima tekshiriladi:
- Katta hajmdagi muammolarni ajrata olish
- Trade-off’larni tushunish (tezlik vs ishonchlilik)
- Amaliy texnologiyalarni bilish
- Real-world cheklovlarni hisobga olish
Kursda nimalar o’rganasiz?
Ushbu kursda quyidagilarni o’rganasiz:
- Tizimlar negizi — kompyuter, tarmoq va protokollar
- Kengayish usullari — load balancing, CDN, scaling
- Ma’lumotlar — database’lar, replication, sharding
- Keshlash — caching strategiyalari va consistency
- Asinxron jarayonlar — message queues, event-driven
- Qo’shimcha mavzular — rate limiting, monitoring, security
- Real case studies — Twitter, WhatsApp, Uber
Keyingi darsda Scalability asoslarini o’rganamiz.