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

Лайвкодинг на собеседовании

3221 вопрос в категории «Лайвкодинг»

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

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

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

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

Каталог

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

Найдено: 3221
Лайвкодинг

Как сделать, чтобы два asyncio.sleep(5) отработали за 5 секунд, а не за 10?

Запустите оба ожидания конкурентно, например через asyncio.gather(). Два последовательных await asyncio.sleep(5) дают около 10 секунд, а конкурентный запуск — около 5 секунд плюс накладные расходы.

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

Get_images: проверка каталога и суффиксов через pathlib

В коде неверны проверка каталога, имя directory и условие расширений: выражение с != и or истинно для любого файла. Используйте pathlib, is_file() и проверку суффикса через in.

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

Как удалить элемент из списка по его индексу?

Используйте del items[index], если значение не нужно, или items.pop(index), если хотите его получить. Отрицательный индекс отсчитывается с конца, а выход за границы вызывает IndexError.

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

Вы затронули важный момент с несколькими инстансами. А можете привести пример кода с использованием asyncio.Lock для защиты составной операции внутри одного процесса?

Один общий asyncio.Lock должен охватывать проверку и изменение состояния. Это защищает задачи одного event loop, но не несколько процессов, потоков или независимые экземпляры приложения.

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

Реализуйте пользовательское исключение для недопустимого перехода статуса заказа.

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

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

import asyncio

Да, в показанном запуске asyncio.run() завершает асинхронные генераторы, поэтому Cleanup будет напечатано при завершении работы. Но break сам по себе не гарантирует немедленное выполнение finally генератора.

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

Выведите количество пользователей, зарегистрировавшихся за последние 30 дней, и отсортируйте результат по дате регистрации.

Если требуется число регистраций по дням, фильтруйте последние 30 дней, группируйте по дате и используйте ORDER BY. Схему и часовой пояс нужно задать явно: одно общее число сортировать по дате бессмысленно.

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

Как сделать один декоратор, работающий и с синхронными, и с асинхронными функциями?

Декоратор может при создании обёртки проверить inspect.iscoroutinefunction и вернуть async wrapper для coroutine-функции, обычный wrapper — для синхронной. Метаданные сохраняют через functools.wraps.

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

В AsyncIO нужно атомарно уменьшить лимит в общем состоянии после await. Какой подход наиболее надёжен?

Наиболее надёжен последний вариант с учётом области состояния: атомарная операция Redis для нескольких workers либо asyncio.Lock для одного event loop. Проверка и уменьшение должны составлять одну критическую операцию.

Читать ответ