Найдите и устраните ошибки в Go‑программе
Используйте range по каналу: он прочитает накопленные 1–5 и завершится после опустошения закрытого канала. Исходный бесконечный цикл затем печатает нули, а не вызывает panic.
Читать ответПодготовка к интервью
696 вопросов с собеседований в Wildberries
Что проверяют на интервью
Подборка объединяет вопросы, отмеченные на этапах интервью в Wildberries. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: infrastructure, go, mobile.
Каталог
Используйте range по каналу: он прочитает накопленные 1–5 и завершится после опустошения закрытого канала. Исходный бесконечный цикл затем печатает нули, а не вызывает panic.
Читать ответПрограмма не скомпилируется без импорта fmt. Даже после его восстановления результат int32(math.Pow(2,64)) не имеет переносимого конкретного значения: число вне диапазона int32.
Читать ответИспользуйте два указателя: переносите меньший из текущих элементов, затем допишите оставшийся хвост. Сортировать объединённый массив заново не нужно.
Читать ответslice1 содержит десять пустых строк, а slice2 не содержит элементов. У обоих capacity=10, но длины равны 10 и 0 соответственно.
Читать ответКак написано, программа не компилируется из-за закомментированного импорта fmt. После его восстановления будет [1 2 3 4]: append выполняется в новом массиве, а результат sub игнорируется.
Читать ответROW_NUMBER выдаёт уникальный порядковый номер каждой строке и может отрезать сотрудников с одинаковой зарплатой. Если нужны три уровня зарплаты со всеми совпадениями, нужен DENSE_RANK.
Читать ответФиксированного небольшого лимита горутин в Go нет, но их число ограничено памятью и ресурсами процесса. Миллион горутин может создать серьёзную нагрузку даже при малом начальном стеке.
Читать ответProduction-ready означает, что задача удовлетворяет требованиям и её можно безопасно эксплуатировать: известны ошибки, наблюдаемость, совместимость и способ восстановления. Одних зелёных тестов недостаточно.
Читать ответПри завершении pod работа в памяти может оборваться, а клиент получить ошибку или неизвестный результат. Сам факт тайм-аута не означает, что операция не успела совершиться.
Читать ответСгруппируйте строки по имени и оставьте группы, содержащие SQL и минимум два разных языка. Для приведённых данных запрос вернёт Nick и Ivan.
Читать ответappend добавляет элементы к слайсу и возвращает новый заголовок слайса. Если capacity хватает, используется прежний массив; иначе выделяется другой массив и элементы копируются.
Читать ответГорутина на каждый URL при большом списке создаёт неконтролируемую конкурентность, нагрузку на сеть, память и внешние сервисы. Лучше ограниченный worker pool.
Читать ответ