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

Банк вопросов с собеседований

Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.

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

Усильте резюме перед собеседованием

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

Анализ резюме
Сбросить

Каталог

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

Найдено: 3013
Теория

Каким образом ORM защищает от SQL-инъекций на уровне формирования параметризованных запросов?

ORM передаёт SQL-шаблон и значения отдельно через параметры драйвера. Пользовательский ввод остаётся данными, а не частью синтаксиса SQL, если не использовать небезопасную строковую сборку.

Читать ответ
Теория

Что такое векторные часы (Vector Clocks) и как они помогают разрешать конфликты версий в децентрализованных NoSQL-системах, например Cassandra?

Векторные часы помогают отличить причинно упорядоченные версии от конкурентных, но сами не выбирают правильное содержимое. В Cassandra обычные изменения данных разрешаются по timestamps, а не такими векторами.

Читать ответ
Поведенческий

Расскажите о вашем опыте работы с PostgreSQL: настройка, написание запросов и глубина погружения.

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

Читать ответ
Теория

Как в SQLAlchemy реализовать пессимистичные и оптимистичные блокировки на уровне моделей?

Пессимистичная защита использует SELECT ... FOR UPDATE через with_for_update() внутри транзакции. Оптимистичная — условное обновление по версии, в ORM это можно настроить через version_id_col.

Читать ответ
Теория

Что такое WAL (Write-Ahead Log) в PostgreSQL и для чего он нужен?

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

Читать ответ
Теория

Как построить сложный оконный запрос (Window Function) средствами SQLAlchemy, не прибегая к сырому SQL?

Используйте SQLAlchemy func и over(), задав partition_by, order_by и при необходимости рамку окна. Для фильтрации по вычисленному номеру строки обычно нужен подзапрос или CTE.

Читать ответ
Теория

Как вы будете отлаживать и ускорять SQL-запрос с девятью JOIN, который выполняется 15 минут, до целевого времени около 20 секунд?

Сначала найду конкретные дорогие узлы плана и проверю корректность оценок строк. Девять JOIN сами по себе не объясняют 15 минут и не гарантируют возможность достичь 20 секунд.

Читать ответ
Поведенческий

Расскажите подробнее об оптимизации PostgreSQL, которую вы упоминали.

Разберите конкретную оптимизацию: симптом, измерение, обнаруженную причину, изменение и результат. Назовите реальные планы запросов или метрики, а не только факт добавления индекса.

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

Есть несколько сервисов (2-3), и есть сквозной бизнес-сценарий, проходящий через все сервисы. Если операция на каком-то из сервисов посередине или под конец сломалась, система оказывается в неконсистентном состоянии. Какими способами можно добиться межсервисной транзакционности (либо весь сценарий применился, либо не применился вообще), если у каждого сервиса своя база данных?

Строгую атомарность дают поддерживаемые распределённые транзакции, например 2PC, либо перенос инварианта в одну транзакционную границу. Saga обеспечивает компенсации, но не равна общему ACID rollback.

Читать ответ
Лайвкодинг

import json

В коде синхронный Redis блокирует async-обработчик, запросы к БД выполняются по одному ID, а отсутствие продукта приводит к ошибке. Нужны валидация входа, пакетное чтение и контролируемый кеш.

Читать ответ