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

Вопросы на собеседовании в Татнефть Цифровые Технологии

10 вопросов с собеседований в Татнефть Цифровые Технологии

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

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

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

Подборка объединяет вопросы, отмеченные на этапах интервью в Татнефть Цифровые Технологии. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: Python, python, asyncio.

Каталог

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

Найдено: 10
Поведенческий

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

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

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

Как устроена асинхронность в Python?

В asyncio корутины кооперативно делят поток event loop: задача выполняется до приостановки, после чего цикл может продвинуть другие готовые задачи или дождаться событий I/O.

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

Что происходит при asyncio.create_task и чем отличается от await coroutine?

await coroutine выполняет корутину в текущей задаче и ждёт её результата. createtask создаёт отдельную Task, позволяя ей продвигаться конкурентно с другими задачами event loop.

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

Можно ли запустить синхронный requests неблокирующе в асинхронном приложении и как это сделать?

Синхронный requests можно выполнить в рабочем потоке, чтобы не занимать event loop. Сам запрос при этом остаётся блокирующим для этого потока.

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

Как бы вы реализовали собственный асинхронный таймаут?

Асинхронный timeout ждёт завершения задачи до дедлайна, затем запрашивает отмену и корректно освобождает ресурсы. Это кооперативная отмена, а не принудительное завершение потока.

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

Что произойдёт, если внутри корутины, обёрнутой в asyncio.wait_for с таймаутом, вызвать time.sleep или requests?

time.sleep и синхронный requests блокируют поток event loop. Таймер asyncio.waitfor не сможет вовремя обработать отмену, поэтому такой timeout не гарантирует остановку по настенным часам.

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

Реализуйте rate limiter для обработчика: у каждого клиента есть client_id, limit и interval; нужно ограничить число вызовов handler для каждого клиента в скользящем временном окне и выбрасывать RateLimitExceededError.

Для точного скользящего окна храните очередь времён допущенных вызовов по clientid. Перед новым вызовом удалите события старше окна и сравните оставшееся количество с limit.

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

Что считается блокирующей операцией в asyncio? Является ли формирование списка из миллиарда элементов блокирующим?

Блокирующая для event loop операция долго не возвращает ему управление. Это бывает не только при I/O: построение списка из миллиарда элементов также занимает поток и огромный объём памяти.

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

Почему aiohttp может выполнять HTTP-запросы неблокирующе, а requests — нет?

aiohttp интегрирован с event loop и отдаёт управление на ожидании сетевого I/O. requests предоставляет синхронный интерфейс и удерживает вызывающий поток до завершения операции.

Читать ответ