ГлавнаяБлогСистемный дизайн: 8 шагов для собеседования
Собеседования

Системный дизайн: 8 шагов для собеседования

Системный дизайн интервью: 8 шагов, блоки и цифры. Научитесь проходить Design X без паники. Читайте и применяйте на практике!

Al
Редакция Algolitalgolit.ru
9 мин чтения31 августа 2026 г.

Почему вы проваливаете системный дизайн (и как это исправить)

Большинство людей проваливают интервью по системному дизайну не из-за незнания технологий, а из-за отсутствия метода. Вы слышите «Спроектируйте Twitter», сразу переходите к «давайте использовать базу данных», детально прорабатываете один случайный угол, игнорируете остальное и выходите с половиной нарисованной схемы на доске. Кандидаты, которые проходят, не умнее — они следуют повторяемой последовательности, проговаривая её вслух каждый раз. В этой статье — сжатый фреймворк; полное руководство (каждый шаг в деталях, строительные блоки, числа для запоминания и полный пример) доступно на моём сайте.

Почему вопрос открытый намеренно

«Спроектируйте Twitter» не имеет единственного правильного ответа, объём огромен, а у вас 45 минут. В этом суть — интервьюер проверяет не то, запомнили ли вы архитектуру Twitter. Он наблюдает, как вы ориентируетесь в неопределённости, принимаете компромиссы и общаетесь. Дайте ему чёткое, структурированное прохождение задачи — и вы пройдёте, даже если итоговый дизайн не «идеален».

Фреймворк с первого взгляда

ШагЧто делатьВремя (~45 мин)
1Уточнить требования (функциональные + нефункциональные) и сузить объём~5 мин
2Оценки «на конверте» (QPS, хранилище, пропускная способность)~5 мин
3Проектирование API — несколько ключевых эндпоинтов~5 мин
4Модель данных — сущности, SQL vs NoSQL и почему~5 мин
5Высокоуровневая архитектура — рисуем блоки~10 мин
6Углубление в сложную часть — 1–2 интересных момента~10 мин
7Узкие места и масштабирование — кэш, шардирование, репликация, очереди~5 мин
8Компромиссы и завершение~3 мин

Шаги, которые решают pass/fail

1. Уточнение и сужение

Никогда не начинайте проектировать — начните задавать вопросы. Функциональные (что делает) + нефункциональные (масштаб, задержка, консистентность, соотношение чтения и записи). Затем безжалостно сократите до 2–4 фич, а остальное отложите вслух. Самая частая ошибка — пропустить этот шаг и красиво спроектировать не ту систему.

2. Оценки

Вам нужен порядок величины, а не точность. Быстрый способ: в сутках ~86 400 секунд ≈ 10^5, поэтому запросов в день ÷ 100 000 ≈ средний QPS, а пик ≈ 2–3×. Например, 1 000 000 000 чтений в день ÷ 86 400 ≈ 11 600 QPS в среднем. Пик ≈ 3× ≈ ~35 000 QPS. Уже это число говорит: ни одна база данных не справится в одиночку — нужны кэширование, реплики, шардирование.

3–4. API и модель данных

Сначала определите контракт (курсорная пагинация вместо offset, явная аутентификация). Затем выберите хранилище и обоснуйте выбор: «твиты — это append-heavy, читаются по ключу, без join, поэтому wide-column store масштабируется лучше, чем реляционная». Оценивается рассуждение, а не выбор.

5. Рисуем архитектуру

Клиент → балансировщик нагрузки → stateless серверы приложений → кэш/БД → ответ. Тяжёлые или медленные задачи (медиа, уведомления, фан-аут) отправляйте в очередь + воркеры, чтобы путь запроса оставался быстрым.

6. Углубление в одну сложную часть

В каждом «Design X» есть 1–2 вещи, которые делают его интересным; остальное — сантехника. Например: URL shortener — генерация коротких кодов и коллизии; Rate limiter — алгоритм и распределённые счётчики; News feed — фан-аут на запись или чтение (проблема знаменитостей); Чат — доставка в реальном времени, порядок, присутствие; Uber — геопространственное индексирование и матчинг; Платежи — идемпотентность и журнал; YouTube — пайплайн транскодинга и CDN. Одно хорошо продуманное углубление лучше десяти поверхностных блоков.

7–8. Узкие места и компромиссы

Спросите «что сломается первым?» → кэширование (укажите инвалидацию), реплики для чтения, шардирование (укажите ключ шарда), асинхронные очереди, CDN, устранение единых точек отказа. Затем завершите, назвав компромиссы, которые вы приняли, и что бы вы пересмотрели. Поднятие узких мест до того, как это сделает интервьюер, — признак senior-уровня.

~10 строительных блоков, которые используются в каждой задаче

  • Балансировщик нагрузки
  • Кэш (Redis)
  • CDN
  • База данных (SQL для консистентности, NoSQL для масштаба; реплики для чтения, шардирование для записи)
  • Очередь сообщений (Kafka/SQS)
  • Blob-хранилище (S3 — никогда не кладите видео в БД)
  • Консистентное хеширование
  • Rate limiter / API gateway

Выучите их наизусть, и каждый «Design X» станет задачей сборки.

Числа, которые нужно запомнить

Задержки

RAM ~100 нс, случайное чтение SSD ~100 мкс, round trip в том же ЦОД ~500 мкс, HDD seek ~10 мс, межконтинентальный round trip ~150 мс. Память быстрая, диск медленный, сеть тем медленнее, чем дальше — поэтому агрессивно кэшируйте и держите данные рядом с пользователями.

Степени двойки

2^10 ≈ 1 КБ, 2^20 ≈ 1 МБ, 2^30 ≈ 1 ГБ, 2^40 ≈ 1 ТБ.

Доступность

99.9% ≈ 8.7 ч простоя в год · 99.99% ≈ 52 мин · 99.999% ≈ 5 мин. Каждая девятка ~ в 10 раз сложнее — спросите, сколько вам реально нужно.

Ментальная модель

Интервью по системному дизайну — это направляемый разговор о компромиссах, а не тест с ключом ответов. Интервьюер — ваш соавтор, а не экзаменатор. Три привычки отделяют pass от fail: уточняйте и сужайте перед проектированием, позволяйте числам управлять решениями и постоянно общайтесь (никакого молчаливого рисования на доске). Освойте 8 шагов, 10 строительных блоков и несколько чисел — и «Design X» станет одним и тем же проторённым путём, применённым к новому месту назначения.

Практический вывод

Прямо сейчас: возьмите таймер на 45 минут, выберите «Design Pastebin» и пройдите все 8 шагов вслух. Начните с уточнения требований, сделайте оценки, нарисуйте архитектуру и углубитесь в одну сложную часть. Запишите, где вы споткнулись, и повторите через день. Через три тренировки вы заметите, что действуете по фреймворку автоматически. Полное руководство с детальным разбором каждого шага, таймлайном, диаграммами и полным примером — на моём сайте.

#системный дизайн#интервью#архитектура#масштабирование
Al
Редакция Algolit

Пишем про алгоритмы, подготовку к собеседованиям и карьеру в IT — так, чтобы было понятно и полезно.

Хочешь закрепить знания на практике?

Решай задачи на Algolit — интерактивная платформа для обучения

Начать бесплатно →