Повторные загрузки и sync.Once: гонка на dbHits
Первый фрагмент делает пять вызовов для ID 42 и содержит data race на dbHits++. Второй при корректно объявленных once и user выполнит загрузку один раз.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
Первый фрагмент делает пять вызовов для ID 42 и содержит data race на dbHits++. Второй при корректно объявленных once и user выполнит загрузку один раз.
Читать ответИспользуйте ROW_NUMBER с PARTITION BY пол и детерминированным ORDER BY внутри каждой группы. Нумерация начнётся с единицы отдельно для каждой категории.
Читать ответГорутины выполняют запросы и отправляют результат в канал, а основная горутина печатает его. Закрывать канал нужно после завершения всех отправителей.
Читать ответКод не компилируется и имеет N+1-запросы, утечки rows и неверную фильтрацию isActive=false. Для миллиона записей обязательны пагинация и отделение внешнего API.
Читать ответДеление можно выполнить вычитанием удвоенных делителей. Использование отрицательных значений позволяет обработать MinInt32 без выхода за 32-битный диапазон.
Читать ответВывод: start, defer 3, recovered: boom, defer 2, defer 1. Recover останавливает панику, но выполнение после panic в main не продолжается.
Читать ответОставьте только буквы и цифры, приведите их к одному регистру и сравните символы с двух концов. Для Unicode используйте rune, а не байты.
Читать ответСтрока должна остаться ab: обычное преобразование сохраняет независимое строковое значение. Точное число аллокаций зависит от оптимизаций компилятора и контекста использования.
Читать ответЗапустите по горутине на URL, задайте HTTP-таймаут, закройте тела ответов и дождитесь обеих операций. Ошибки обрабатываются отдельно от кодов HTTP.
Читать ответВыплата должна быть атомарной и идемпотентной: деньги нельзя хранить в float32, а независимые save допускают частичное обновление и гонки.
Читать ответLEFT JOIN возвращает все книги, добавляя имя найденного автора; если автора нет, его имя будет NULL. Точное условие зависит от схемы связи.
Читать ответДля связи книг и соавторов нужна таблица многие-ко-многим. LEFT JOIN сохраняет книги без автора и авторов без книг; COUNT считают по идентификатору книги.
Читать ответ