Анализ параллельных HTTP‑запросов и оценка недостатков подхода
В этом примере сетевых запросов вообще нет: fetchUrl всегда возвращает nil. При реальной реализации понадобятся ожидание, таймауты и закрытие тела ответа.
Читать ответПодготовка к интервью
3221 вопрос в категории «Лайвкодинг»
Что проверяют на интервью
В этой подборке вопросы сгруппированы по формату «Лайвкодинг», чтобы подготовку можно было вести от базовых тем к практическим задачам. В подборке чаще встречаются темы: frontend, browser, database.
Каталог
В этом примере сетевых запросов вообще нет: fetchUrl всегда возвращает nil. При реальной реализации понадобятся ожидание, таймауты и закрытие тела ответа.
Читать ответКомментарий в условии неточен: длина исходного среза остаётся 1, но общий массив меняется. Через arr[:2] после add видны [1 2].
Читать ответПроверку статуса, изменение позиций и пересчёт Total выполняйте в одной транзакции под блокировкой корзины. Checkout использует ту же блокировку.
Читать ответrange выдаст руны B, o, a, t, пробел и 🛶 с байтовыми индексами 0–5. Первая строка печатает саму строку, не её длину.
Читать ответПосле вызова add будет выведено [a b x]. Переданный срез имеет свободную вместимость, поэтому append перезапишет третий элемент data.
Читать ответУ программы data race: несколько горутин записывают общую map без синхронизации. Нельзя гарантировать ни true/false, ни успешное завершение.
Читать ответИсходник не компилируется из-за defer =. После исправления на defer logError(err) вывод будет everything fine, хотя do возвращает ошибку fail.
Читать ответЭто ошибка компиляции, не panic: строки неизменяемы, а fmt не импортирован. Для замены символа создайте изменяемый срез и новую строку.
Читать ответФрагмент не компилируется: тип string пишется без кавычек, а строку нельзя сравнивать с nil. После i = s интерфейс i уже не равен nil.
Читать ответИспользуйте фиксированное число работников, общий context и mutex для карты. Для остановки активной загрузки сама функция скачивания должна принимать context.
Читать ответПриведённый код уже ограничивает число одновременных printNumber тремя: вход в функцию возможен только после получения слота в канале.
Читать ответПараллельными должны быть подготовка пяти результатов, а печать — последовательной. Неизменённая displayNumber не гарантирует порядок при конкурентных вызовах.
Читать ответ