Подготовка к интервью

Вопросы по System Design на собеседовании

889 вопросов по System Design

889 вопросов 1634 компании 353 технологии

Что проверяют на интервью

Как устроена подборка

В этой подборке вопросы сгруппированы по формату «System Design», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: backend, api, database.

Каталог

Результаты поиска

Найдено: 889
System Design

Если кэшируем несколько связанных данных (температура и новости), с какой проблемой можем столкнуться?

При раздельном кешировании связанных данных можно получить несогласованный снимок: один ключ уже обновился, другой ещё содержит старое значение. Одинаковый TTL не обеспечивает атомарное обновление.

Читать ответ
System Design

Если бы вы разрабатывали свой тестовый фреймворк, как бы вы организовали его без использования рефлексии?

Без рефлексии тесты можно регистрировать явно как имена и делегаты. Runner вызывает их, ожидает завершения, фиксирует исключения и формирует отчёт.

Читать ответ
System Design

Если у нас back-to-back коммуникация и не нужно передавать большие объёмы данных, ты бы использовал gRPC или REST? На какие факторы обратил бы внимание при выборе протокола?

Для server-to-server взаимодействия с небольшими сообщениями подходят и REST, и gRPC. Размер данных сам по себе не определяет выбор; важнее контракты, клиенты, стриминг и эксплуатационная среда.

Читать ответ
System Design

Задача: есть endpoint getWeather, который возвращает температуру в городе. На него большая нагрузка. Как реализовать кэширование? Что происходит при cache miss под высокой нагрузкой (50k RPS)?

Кешируйте погоду по нормализованному городу, единицам измерения и нужным параметрам с допустимым TTL. При массовом промахе объединяйте обновление одного ключа, иначе 50k RPS обрушатся на источник.

Читать ответ
System Design

Как восстановить или исправить неконсистентные данные, появившиеся в production до отката?

Откат кода не исправляет уже записанные неверные данные. Сначала нужно остановить источник повреждения, определить затронутые записи и подготовить проверяемую процедуру восстановления с резервной копией.

Читать ответ
System Design

Что такое шардирование и что нужно учитывать при его проектировании?

Шардирование распределяет строки между несколькими независимыми узлами по ключу, чтобы масштабировать объём данных и нагрузку. Это отличается от репликации, где узлы хранят копии.

Читать ответ
System Design

Что такое feature toggle и как реализовать быстрое отключение сломанной функции без редеплоя?

Feature toggle — переключатель поведения, отделяющий включение функции от выкладки кода. Для быстрого отключения значение читают из управляемой конфигурации, обновляемой без редеплоя.

Читать ответ
System Design

Как вы используете паттерн Singleton в плагинной архитектуре? Как организовать взаимосвязь между плагинами?

Singleton может представлять общий сервис хоста, но плагины лучше связывать через явные интерфейсы, DI или события. Глобальный доступ к единственному объекту создаёт скрытые зависимости.

Читать ответ
System Design

Как реализовать кэширование так, чтобы сервис работал только с кэшем и не знал о БД? Данные меняются раз в 5 минут, допускаются устаревшие данные. Нужно ли ставить TTL на кэшируемые данные?

Можно вынести загрузку из БД в отдельный обновляющий компонент, а сервису чтения дать только кеш. TTL выбирают по допустимой давности данных и поведению при сбое обновления, а не автоматически ставят пять минут.

Читать ответ
System Design

Для каких задач подходит монолит и как безболезненно эволюционировать от него к микросервисам? Что такое модульный монолит?

Монолит подходит для небольшой команды, меняющихся требований и задач без необходимости независимо масштабировать компоненты. Модульный монолит сохраняет единое развёртывание, но имеет явные внутренние границы.

Читать ответ