Эта задача валит всех на собеседованиях по Go Concurrency в BigTech
Igor Panasyuk
Это видео разбирает одну из самых коварных задач по Go Concurrency, которая регулярно валит кандидатов на собеседованиях в BigTech. В центре внимания - функция unpredictableFunc, которая работает неопределённо долго и не поддаётся изменению, и необходимость написать над ней обёртку predictableFunc с фиксированным таймаутом. По ходу видео шаг за шагом проходит несколько итераций решения: от наивного асинхронного вызова с использованием горутин и каналов, через добавление TTL и ручное управление завершением, до попытки написать собственный контекст и осознать, почему это плохая идея. Далее показано, как корректно решать задачу с помощью встроенного пакета context, какие подводные камни возникают при отмене, утечках горутин и гонках, и почему именно такое решение ожидают на интервью. В финале задача доводится до промышленного уровня с использованием дженериков, чтобы сделать решение универсальным и переиспользуемым. Видео будет полезно всем, кто готовится к собеседованиям по Go, изучает конкурентное программирование, хочет глубже понять таймауты, контексты, асинхронность и реальные ожидания BigTech от Go-разработчиков. Таймкоды: 00:00 - Введение 00:24 - Условие задачи 01:17 - Итерация 1. Асинхронный вызов функции 02:42 - Итерация 2. Добавление TTL на асинхронный вызов 06:31 - Итерация 3. Написание собственного контекста 09:48 - Итерация 4. Использование встроенного пакета 11:09 - Дополнительный материал 11:20 - Финальная итерация. Решение с дженериками 13:04 - Финал