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

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

Кандидат решает задачи о копировании, коллекциях и замыканиях, затем отвечает на вопросы об asyncio, декораторах и сборке мусора. Интервьюер даёт фидбэк по Python Core и обсуждает уровень кандидата.

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

Открыть на YouTube

Таймлайн

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

Открытое мок-интервью с Python-кандидатом начинается с задач на списки, ссылки и поверхностное копирование. Затем интервьюер проверяет выбор коллекций, поведение lambda-замыканий, итераторы и GIL. Существенный блок посвящён asyncio: корутинам, блокирующим операциям, asyncio.sleep, Semaphore, TaskGroup, shield и запуску блокирующего кода через отдельные потоки или процессы. Кандидат пишет декоратор с параметрами и разбирает async wrapper, генераторы, контекстные менеджеры, __del__ и сборку мусора при циклических ссылках. После технической части интервьюер отмечает сильную базу Python Core; итоговая оценка звучит как Middle- от ведущего и Middle от интервьюера. В финальной части записи есть реклама программы и общение со зрителями.

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

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

  • Поверхностная копия контейнера сохраняет ссылки на вложенные объекты, поэтому для независимых вложенных данных нужен другой подход.
  • При выборе set, dict, list и tuple нужно соотносить свойства коллекции с операцией поиска, хранением связей и изменяемостью.
  • asyncio не помогает, если корутина вызывает блокирующую операцию; её нужно заменить неблокирующей или вынести из event loop.
  • Если декоратор выполняет действия вокруг вызова async-функции, его wrapper должен быть async и await-ить исходную функцию.
  • Одного подсчёта ссылок недостаточно для циклических ссылок: в CPython их обнаруживает циклический garbage collector.

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