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:

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:

Kursda nimalar o’rganasiz?

Ushbu kursda quyidagilarni o’rganasiz:

  1. Tizimlar negizi — kompyuter, tarmoq va protokollar
  2. Kengayish usullari — load balancing, CDN, scaling
  3. Ma’lumotlar — database’lar, replication, sharding
  4. Keshlash — caching strategiyalari va consistency
  5. Asinxron jarayonlar — message queues, event-driven
  6. Qo’shimcha mavzular — rate limiting, monitoring, security
  7. Real case studies — Twitter, WhatsApp, Uber

Keyingi darsda Scalability asoslarini o’rganamiz.