Powrót do strony głównej

System Design: jak przejść rozmowę kwalifikacyjną

Przewodnik po przygotowaniu do System Design: kluczowe koncepcje, struktura rozmowy kwalifikacyjnej, typowe błędy z Push/Pull i queues vs jobs. Rekomendacje książek dla middle/senior.

Przejście System Design: podstawa i trade-offy
Advertisement 728x90

System Design na rozmowach kwalifikacyjnych: struktura podejścia i typowe błędy

System Design ocenia umiejętność projektowania skalowalnych systemów. Na początek wystarczy opanować kluczowe koncepcje: Load Balancer do dystrybucji ruchu, Sharding i Partitioning do skalowania poziomego, Replication dla dostępności danych, Message Queue do asynchronicznego przetwarzania. Poznaj typy baz danych — relacyjne i NoSQL — z uwzględnieniem ich struktur danych (B-Tree w SQL, LSM-tree w NoSQL). Po 2 tygodniach codziennego czytania po jednym temacie dziennie, baza zostanie uformowana, wystarczająca na rozmowy kwalifikacyjne w średnich firmach.

Typowe zadania i struktura rozmowy kwalifikacyjnej

Zadania koncentrują się na backendzie: zaprojektuj sieć społeczną z tablicą wiadomości, hosting wideo lub serwis map. Frontend System Design występuje rzadziej, tylko na stanowiskach frontendowych. Backend jest zawsze sprawdzany.

Rozmowa kwalifikacyjna zaczyna się od opisu usługi i wymagań. Pierwsze 5 minut poświęć na wyjaśnienie:

Google AdInline article slot
  • Wymagania funkcjonalne (funkcje: wyszukiwanie kawiarni na mapie, wyznaczanie tras).
  • Wymagania niefunkcjonalne (skala: QPS, objętość danych; niezawodność, bezpieczeństwo, opóźnienie).

Nie przechodź od razu do schematu — to częsty błąd. Bez wyjaśnień ryzykujesz projektowanie niepotrzebnych rzeczy, tracąc czas.

Wybór rozwiązań architektonicznych: Push vs Pull

Rozróżnij modele interakcji usług:

  • Push: źródło (A) informuje odbiorcę (B) po zakończeniu zadania.
  • Pull: odbiorca (B) okresowo sprawdza źródło (A).

| Model | Zalety | Wady |

Google AdInline article slot

|--------|-------------|------------|

| Push | Niskie opóźnienie, natychmiastowe powiadomienie | Ryzyko przeciążenia odbiorcy, złożoność przy awariach |

| Pull | Kontrola obciążenia, prostota odporności na błędy | Opóźnienia z powodu polling, zwiększony ruch |

Google AdInline article slot

Przykłady: Prometheus używa Pull dla metryk, InfluxDB — Push. Wybór zależy od scenariusza: Push dla czasu rzeczywistego, Pull dla przetwarzania wsadowego.

Message Brokers vs Batch Jobs

Do dystrybucji obciążenia porównaj:

  • Message Queues (Kafka, RabbitMQ): asynchroniczne przetwarzanie, równomierna dystrybucja, niskie opóźnienia.
  • Batch Jobs (Cron, Airflow): uruchamianie według harmonogramu, odpowiednie dla analityki lub zadań ETL z ustalonym czasem.

Błąd: ignorowanie batch dla zadań biznesowych, wymagających codziennego przetwarzania (raporty). Queues lepsze dla obciążeń szczytowych, jobs — dla przewidywalnych.

Tradeoffs w projektowaniu systemów

Każda decyzja niesie kompromisy:

  • Monolit vs Mikrousługi: monolit szybszy w rozwoju i wdrożeniu, mikrousługi skalowalne, ale zwiększają opóźnienia i złożoność interakcji sieciowej.
  • SQL vs NoSQL: SQL gwarantuje ACID i JOIN'ów, NoSQL — poziome shardowanie i schemat bez migracji.

Zrozum straty:

  • Skalowalność jest poświęcana dla szybkości rozwoju.
  • Schemat danych ułatwia zapytania, ale utrudnia ewolucję.

Senior-inżynierowie argumentują wybór tradeoffs, a nie doświadczeniem "cierpiałem na projekcie".

Polecane materiały

  • System Design Interview Vol. 1 (Alex Xu): Baza + popularne zadania (tablica wiadomości, YouTube). Idealny start, równowaga teorii i praktyki.
  • System Design Interview Vol. 2 (Alex Xu): Głębiej w tradeoffs, mniej standardowe przypadki.
  • Designing Data-Intensive Applications (Martin Kleppmann): Struktury danych, problemy systemów rozproszonych (teoria CAP, spójność). Dla poziomu Principal, czytaj po bazie.

Zaznaczaj kluczowe miejsca, zaginasz strony do powtórki.

Co jest ważne

  • Wyjaśniaj wymagania przez 5 minut na początku — unikaj projektowania niepotrzebnych rzeczy.
  • Uzasadniaj wybór (queues vs jobs, push vs pull) tradeoffs, a nie preferencjami.
  • Skup się na kompromisach: nie ma idealnych rozwiązań.
  • Opanuj bazę w 2 tygodnie, pogłębiaj się książkami dla Big Tech.
  • Praktykuj na rzeczywistych zadaniach z książek Xu.

System Design odsłania 'magię' usług takich jak S3 czy systemy płatności, rozwijając umiejętność podejmowania przemyślanych decyzji.

— Editorial Team

Advertisement 728x90

Czytaj dalej