Əsas məzmuna keç
DevScallix
← System DesignPlanlaşdırılır

System Design: Modullar

Proqram sistem dizaynına təkrarlana bilən metod kimi yanaşır: tələbləri və keyfiyyət atributlarını müəyyən etmək, həcmi qiymətləndirmək, API və data modelini qurmaq, seçimləri trade-off ilə əsaslandırmaq. Metod 6–8 klassik case study üzərində tətbiq olunur və hər biri yazılı trade-off təhlili ilə bitir.

  1. 01

    Tələblər və keyfiyyət atributları

    Dizayna başlamazdan əvvəl nəyi həll etdiyimizi və nəyi etmədiyimizi dəqiqləşdiririk.

    • Funksional və qeyri-funksional tələblər
    • Əlçatanlıq, gecikmə, dayanıqlılıq və uyğunluq atributları
    • Məhdudiyyətlər və fərziyyələrin açıq yazılması
    • SLI/SLO anlayışı
    • Scope-u məhdudlaşdırmaq

    Laboratoriya: Qeyri-müəyyən bir tapşırıq üçün tələblər və fərziyyələr siyahısı yazıb qeyri-məqsədləri müəyyən etmək.

  2. 02

    Qiymətləndirmə

    Dəqiq rəqəm yox, qərara təsir edən böyüklük sırası lazımdır.

    • Sorğu/saniyə və peak faktoru
    • Saxlama və bandwidth hesabı
    • Oxuma/yazma nisbəti
    • Hesablamanın qərara təsiri
    • Fərziyyələrin açıq göstərilməsi

    Laboratoriya: Seçilmiş sistem üçün trafik və saxlama qiymətləndirməsi hazırlayıb nəticənin hansı qərara təsir etdiyini yazmaq.

  3. 03

    API və data dizaynı

    Sorğu nümunələrindən başlayıb API və data modelini onlara uyğun qururuq.

    • Resurs və əməliyyat dizaynı
    • Pagination, idempotency və rate limit
    • Normallaşma və denormallaşma
    • Index və sorğu nümunələrinin uyğunluğu
    • Schema təkamülü

    Laboratoriya: Verilmiş sistem üçün API müqaviləsi və cədvəl sxemi çıxarıb əsas sorğuların necə icra olunduğunu izah etmək.

  4. 04

    Caching və queue-lar

    Gecikməni azaldan və yükü hamarlayan iki əsas alətin dəyərini və riskini qiymətləndiririk.

    • Cache-aside, write-through, write-behind
    • Invalidasiya və stale data
    • Cache stampede və qorunma
    • Queue ilə yükün ayrılması və backpressure
    • Dead letter və təkrar cəhd

    Laboratoriya: Oxuma-ağır servisə cache əlavə edib stale data və stampede ssenarilərini simulyasiya etmək.

  5. 05

    Storage seçimi və miqyaslanma

    İş yükünə uyğun saxlama növünü seçir və oxuma/yazma miqyaslanması variantlarını müqayisə edirik.

    • Relational, key-value, document, search və object storage
    • Read replica və replikasiya gecikməsi
    • Sharding açarı və re-sharding çətinliyi
    • Hot key problemi
    • CAP və PACELC-in praktik mənası

    Laboratoriya: Eyni iş yükü üçün iki storage variantını müqayisə edən qısa qərar sənədi yazmaq.

  6. 06

    Uyğunluq və uğursuzluq rejimləri

    Sistemin harada və necə sınacağını əvvəlcədən düşünürük.

    • Strong, eventual və causal consistency
    • Single point of failure axtarışı
    • Timeout, retry və idempotency
    • Qismən uğursuzluq və degradasiya strategiyası
    • Disaster recovery anlayışı: RPO və RTO

    Laboratoriya: Dizayn olunmuş sistem üçün uğursuzluq rejimləri cədvəli hazırlayıb hər biri üçün cavab və zərər qiymətləndirməsi yazmaq.

  7. 07

    Case study-lər I: URL shortener, rate limiter, notification

    Metodu nisbətən məhdud scope-lu üç klassik məsələyə tətbiq edirik.

    • URL shortener: ID generasiyası, yönləndirmə yükü, analitika
    • Rate limiter: token bucket, sliding window, paylanmış sayğac
    • Notification sistemi: kanallar, prioritet, təkrar cəhd
    • Hər üçündə qiymətləndirmə və trade-off təhlili

    Laboratoriya: Üç məsələdən ikisini seçib tam yazılı dizayn sənədi və trade-off təhlili hazırlamaq.

  8. 08

    Case study-lər II: payments ledger, feed, search

    Uyğunluq, miqyas və axtarış baxımından daha çətin üç məsələni təhlil edirik.

    • Payments ledger: double-entry, idempotency, audit izi
    • Feed: fan-out on write və read, hot istifadəçilər
    • Search: invert index, indeksləmə gecikməsi, relevantlıq
    • Hər üçündə uyğunluq və uğursuzluq təhlili

    Laboratoriya: Üç məsələdən birini seçib dizayn sənədi yazmaq və həmyaşıd review-dan sonra yenidən işləmək.

Proqram səhifəsinə qayıtPlan haqqında sual ver