Назад

System Design собеседование: универсальный фреймворк (с примерами)

автор MicroStudio
System Design собеседование: универсальный фреймворк (с примерами)

System Design собеседование: универсальный фреймворк (с примерами)

System design проверяет структурность, умение выбирать компромиссы и ясность мышления. Сильный кандидат не начинает с Kafka, а сначала фиксирует задачу.

1) Уточните цель (и что такое “успех”)

Задайте 3–5 вопросов, чтобы не строить не то:

  • Сколько пользователей? Пиковый RPS? Одна страна или глобально?
  • Целевая задержка (p50/p95)? Доступность?
  • Хранение данных? Сроки? Регуляторика?
  • Преобладают чтения или записи? Нужен real-time?

2) Обозначьте MVP-скоуп

Скажите, что делаете и что не делаете:

  • “MVP: посты, лента, лайки. Без рекомендаций и личных сообщений.”

3) Сущности и модель данных

Запишите объекты и связи:

  • User, Post, Follow, Like, Comment
  • Кардинальности: 1-to-many, many-to-many

4) API (попроще)

Покажите минимальный набор:

POST /posts
GET  /feed?cursor=...
POST /posts/{id}/like
GET  /users/{id}

5) Архитектура верхнего уровня

Сначала простая схема, потом масштабирование:

  • CDN + app servers
  • Основная БД (Postgres / MySQL)
  • Redis для горячих чтений
  • Воркеры для fanout / индексов

6) Самое важное: решения для масштабирования

Классические точки:

  • Пагинация: cursor-based лучше offset-based для больших лент
  • Read path: кэш горячих лент, избегайте N+1
  • Write path: очередь и асинхрон для не-критичных задач

7) Компромиссы (проговаривайте)

Это любят интервьюеры:

  • “Предрасчет ленты снижает задержку, но удорожает запись.”
  • “Согласованность vs доступность: что важнее в этой задаче?”

8) Чеклист (можно использовать всегда)

  • Требования (функциональные + нефункциональные)
  • Модель данных
  • API
  • Архитектурная схема
  • Узкие места + решения
  • Компромиссы
  • Наблюдаемость (логи/метрики/трейсы)

Если вы спокойно проходите по этому плану за 30–40 минут, вы уже сильнее большинства кандидатов.