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

Разбор live coding собеседования Go-разработчика

Третья часть записи реального технического собеседования на Senior Go-разработчика с авторскими комментариями. Кандидат разбирает диагностику медленного бэкенда и запросов PostgreSQL, а затем в live coding реализует внутрипроцессный горячий кэш на map и RWMutex; интервьюеры уточняют работу defer, обработку отсутствующих значений и ограничение кэша 200 элементами.

Источник: it father.

Открыть на YouTube

Таймлайн

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

Ролик сочетает запись третьей части реального технического интервью и комментарии автора. Сначала кандидат предлагает план расследования медленного HTTP-запроса: поиск по логам и trace ID, анализ SQL через EXPLAIN ANALYZE, профилирование Go-кода с pprof и проверку цепочек синхронных вызовов. Затем при запрете Redis и ClickHouse он предлагает горячий кэш в памяти процесса. В live coding обсуждаются map, RWMutex, Get/Set, nil-инициализация, пропущенный return и проверка базового сценария. В финале интервьюер спрашивает о корректном ограничении кэша до 200 записей.

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

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

  • При расследовании медленного endpoint сначала локализуют задержку по логам и trace ID, затем отдельно проверяют SQL-план, Go-код и синхронные downstream-вызовы.
  • Запись в nil map в Go вызывает panic, поэтому map нужно инициализировать до Set; чтение value, ok отличает отсутствие ключа от zero value.
  • RWMutex защищает общую map и уместен при преобладании параллельных чтений, но не является автоматической заменой Mutex.
  • defer выполняется при возврате из окружающей функции в обратном порядке; os.Exit не запускает отложенные вызовы.
  • Лимит в 200 элементов требует явной политики вытеснения и структуры для поиска удаляемой записи: одного счётчика при бизнесовых ключах недостаточно.

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

31:04
BackendSenior

Go: техническое собеседование Senior-разработчика

Запись технического собеседования на позицию Senior Go-разработчика. Интервьюер проверяет знание типов данных Go, строк, слайсов, map и интерфейсов, затем обсуждает горутины, context и синхронизацию, REST и аутентификацию, а также индексы PostgreSQL и задачу очистки большой таблицы.

11:51
BackendSenior

Техническое интервью по backend-разработке с live coding

Запись технического интервью backend-кандидата: обсуждаются Saga и транзакции между сервисами, блокировки PostgreSQL, materialized views и append-only-модель. В практической части кандидат разбирает вопросы о выводе Go-кода, атомарных операциях и mutex, а также SQL-задачу по выбору актуального статуса SMS и её производительности.