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

System Design

Sistemləri dizayn etmək metodu: tələblərdən trade-off təhlilinə qədər.

Bu proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix, qiymət və qrup elan olunmayıb. Maraq bildirsəniz, proqram planlaşdırıldıqda və ya fərdi format müzakirə olunduqda sizinlə əlaqə saxlayarıq.

Məqsəd

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.

Kimin üçündür

  • Backend sistemlərini bütövlükdə düşünməyi öyrənmək istəyən senior namizədlər
  • Tech lead və ya arxitektura rolu istiqamətində hərəkət edənlər
  • Dizayn müzakirələrində fikrini strukturlu əsaslandırmaq istəyənlər
  • Mikroservis, verilənlər bazası və mesajlaşma biliklərini vahid çərçivəyə yığmaq istəyənlər

Kimin üçün deyil

  • Backend təcrübəsi olmayanlar: əvvəlcə Java Backend Career Track tövsiyə olunur
  • Müsahibə üçün əzbər cavab şablonları axtaranlar: proqram əzbərə yox, əsaslandırmaya fokuslanır
  • Konkret texnologiyanın konfiqurasiyasını öyrənmək istəyənlər

İlkin tələblər

  • Real backend servisi yazmaq təcrübəsi
  • SQL, index və transaction əsasları
  • HTTP və REST API dizaynı
  • Cache və message queue-nun nə olduğunu bilmək

Proqramın sonunda nə bacaracaqsınız

Proqramın sonunda nə bacaracaqsınız

  • Qeyri-müəyyən tapşırığı funksional və keyfiyyət tələblərinə çevirmək
  • Trafik, yaddaş və bandwidth üçün sadə hesablamalar aparmaq
  • Sorğu nümunələrinə uyğun API və data modeli dizayn etmək
  • Cache strategiyasını (aside, write-through) və invalidasiya riskini qiymətləndirmək
  • Queue və asinxron emalın nə zaman lazım olduğunu əsaslandırmaq
  • Storage seçimini (relational, key-value, search, object) iş yükünə görə müqayisə etmək
  • Oxuma və yazma miqyaslanması (replica, sharding, partition) üçün variantları təhlil etmək
  • Uğursuzluq rejimlərini sadalayıb hər biri üçün cavab təklif etmək

Heç bir təhsil proqramı işə qəbula və ya vəzifə yüksəlişinə zəmanət verə bilməz.

Tədris planı

Tədris planı

  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

    Praktik 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

    Praktik 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ü

    Praktik 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

    Praktik 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ı

    Praktik 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

    Praktik 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

    Praktik 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

    Praktik 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.

Praktik tapşırıqlar

  • Tələblər və fərziyyələr sənədi
  • Trafik və saxlama qiymətləndirməsi
  • API və data modeli dizaynı
  • Storage seçimi üzrə qərar sənədi
  • Case study dizayn sənədi və həmyaşıd review-su

Portfolio nəticələri

  • 6–8 case study üzrə yazılı dizayn sənədləri
  • Hər dizaynda trade-off təhlili və alternativlər
  • Uğursuzluq rejimləri cədvəli
  • Seçilmiş dizayn üçün qısa ADR

Necə qiymətləndirilir

  • Dizayn müdafiəsi (mentor və həmyaşıdlar qarşısında)
  • Yazılı case study təhlili
  • Həmyaşıd dizayn review-su
  • Trade-off əsaslandırmasının keyfiyyətinə mentor rəyi

Alətlər və texnologiyalar

  • PostgreSQL
  • Redis
  • Kafka və ya RabbitMQ
  • Elasticsearch və ya OpenSearch (konseptual)
  • C4 modeli
  • Diaqram alətləri
  • ADR şablonları
  • k6 və ya JMeter (sadə yük testi)

Səviyyə ardıcıllığı

Əvvəl
Əvvəl: Microservices və Distributed Systems, Kafka və Event-Driven Architecture və ya bərabər təcrübə.
Sonra
Sonra: Tech lead və ya solution architect istiqamətində proqramlar.
Müddət və format
Müddət və format hələ müəyyən edilməyib; proqram planlaşdırılır və təqvimə salınmayıb.

Tez-tez verilən suallar

Tez-tez verilən suallar

Proqram hazırda açıqdır?

Xeyr. Proqram planlaşdırılır və hələ cədvələ salınmayıb. Tarix və qiymət elan olunmayıb. Maraq bildirə və ya konsultasiya istəyə bilərsiniz.

Proqram müsahibəyə hazırlıqdır?

Əsas məqsəd real dizayn düşüncəsidir. Metod müsahibədə də faydalı ola bilər, lakin əzbər şablon və nəticə vədi yoxdur.

Kod yazılacaq, yoxsa yalnız diaqram?

Əsas nəticə yazılı dizayn sənədləridir. Bəzi laboratoriyalarda cache, yük və sorğu planı kimi mövzularda kiçik təcrübələr aparılır.

Sertifikat və ya iş vədi var?

Xeyr. Sertifikat və ya nəticə vədi yoxdur. Dəyərləndirmə dizayn müdafiəsi və mentor rəyi şəklindədir və tövsiyə xarakteri daşıyır.

Maraq bildirin

Bu, müraciət və ya ödəniş öhdəliyi deyil. Proqram planlaşdırıldıqda və ya sizə uyğun format müzakirə olunduqda əlaqə saxlayırıq.

Sizinlə necə əlaqə saxlayaq?