Все профессии

Подготовка к собеседованию

Backend Node.js: вопросы и ответы на собеседовании

Практические вопросы по Node.js, асинхронности, HTTP, базам данных и проектированию backend-сервисов.

Node.js и JavaScript

4 вопросов
Как работает event loop в Node.js?middle

Node.js выполняет JavaScript в одном основном потоке, а операции ввода-вывода передаёт системным механизмам и libuv. После завершения callbacks и microtasks возвращаются в очереди event loop.

Чем Promise отличается от callback?junior

Promise представляет будущее значение и позволяет строить цепочки через then/catch или async/await. Это уменьшает вложенность и централизует обработку ошибок по сравнению с callback-стилем.

Когда нужен worker_threads?senior

Worker threads подходят для CPU-bound задач: обработки изображений, криптографии или сложных вычислений. Для обычного I/O они не нужны, потому что Node.js уже выполняет его асинхронно.

Что такое backpressure в Node.js?senior

Backpressure возникает, когда источник производит данные быстрее, чем потребитель успевает их обработать. Потоки Node.js сигнализируют готовность через write и drain, что позволяет ограничить память.

HTTP и API

3 вопросов
Как проектировать идемпотентный endpoint?middle

Повторный одинаковый запрос не должен создавать дополнительный эффект. Для POST обычно используют idempotency key и сохраняют результат первой операции, а PUT делают заменяющим обновлением ресурса.

Как обрабатывать ошибки в Express?middle

Используют централизованный middleware ошибок, передают туда исключения из async-обработчиков и возвращают единый формат ответа. В логах сохраняют correlation id, но не секреты и персональные данные.

Как выбирать коды HTTP-ответов?junior

2xx обозначают успех, 3xx — перенаправление, 4xx — ошибку запроса или прав, 5xx — проблему сервера. Один и тот же доменный конфликт должен иметь стабильный код и формат ошибки.

Архитектура и данные

3 вопросов
Когда выбрать PostgreSQL, а когда Redis?middle

PostgreSQL — основное долговечное хранилище с транзакциями и связями. Redis подходит для кэша, rate limit, короткоживущих сессий и очередей, но не должен быть единственным источником важных данных.

Как обеспечить повторную обработку сообщения?senior

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

Что логировать в backend-сервисе?middle

Время, уровень, route, latency, correlation id и безопасные параметры операции. Пароли, токены и полные персональные данные в логи не попадают.

Как использовать этот список

Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.

Посмотреть другие профессии →