Вернуться в видеотеку

Мок-интервью Python-разработчика: память, asyncio и конкурентность

Кандидат отвечает на вопросы о reference counting, dict, замыканиях и потоках, затем делает live coding с asyncio.gather. Ведущие разбирают TaskGroup, rate limiting и дают обратную связь.

Источник: ШОРТКАТ — менторская программа

Открыть на YouTube

Таймлайн

Коротко о видео

Открытое мок-интервью охватывает Python Core и конкурентность. Кандидат начинает с reference counting, garbage collector, изменяемых аргументов по умолчанию, копирования данных, коллекций и хэш-таблиц. Затем интервьюер проверяет области видимости, замыкания, args/kwargs, декораторы и генераторы. Следующий блок посвящён потокам, race condition, процессам и IPC. В live-coding части разбирают asyncio.gather и обработку исключений; далее обсуждают TaskGroup, run_in_executor, контекстные менеджеры, различие Task и корутин, последовательные и параллельные запросы, а также ограничение числа одновременных запросов через Semaphore. Ведущие дают фидбэк, затем идут рекламный блок и Q&A с кратким обсуждением system design.

Затронутые темы

Что взять на заметку

  • Изменяемый аргумент по умолчанию может сохранить состояние между вызовами функции.
  • Ключи dict должны быть хэшируемыми, а коллизии обрабатываются внутренним механизмом таблицы.
  • Замыкание в цикле захватывает переменную, поэтому значение часто фиксируют аргументом по умолчанию.
  • При исключении TaskGroup отменяет незавершённые задачи группы; asyncio.gather по умолчанию передаёт первое исключение вызывающему коду, но не отменяет остальные awaitable автоматически.
  • Semaphore ограничивает количество одновременно выполняемых запросов; лимит запросов за период требует отдельного rate limiter и обработки 429.

Рекомендуем посмотреть