G
enby!

Разбираем собеседование от разработчиков из АВИТО: ловушка со слайсами в Go

📲 Telegram: https://t.me/mrteamlead
💸 Boosty (поддержать канал): https://boosty.to/mrteamlead
Сегодня запускаем новую рубрику - смотрим публичные собеседования и разбираем их с моими комментариями. Начнём с мок-интервью по Go (Гошке) от старшего разработчика Авито. Разберём классическую задачу на слайсы, где засада в том, что append возвращает новый слайс, но иногда все они указывают на один и тот же кусок памяти. Поговорим про len, cap, внутреннее устройство слайсов и как Go «стреляет в ногу» с мутирующими ссылками. Ну и, конечно, сравним это с Rust, где такая ситуация в принципе невозможна из-за borrow checker’а. В видео: разбор собеседования с комментариями, как реально работает append и почему данные затираются, заглянем в исходники Go (growslice, nextslicecap и т.д.), бонус: кот в кадре 🐈 Если вам интересно глубже копнуть в память, слайсы и оптимизации — смотрите до конца. Подписывайтесь на канал, чтобы не пропустить продолжение и курс по Rust. 00:00 — Вступление. Новая рубрика 00:31 — Мок-собеседование по Go от разработчиков из Авито 02:20 — Первая задача: что выведет программа и почему 05:12 — Главная ловушка собесов и слайсов 05:31 — Почему в Rust такое невозможно (Borrow Checker спасает) 06:28 — Проверяем поведение кода в консоли 09:10 — Решение от кандидата 14:51 — Усложненная версия задачи 16:48 — Где собеседующий ошибся: рост capacity и типы данных 22:09 — Заглядываем в исходники Go (growslice, roundupsize) 33:05 — Выводы: что нужно реально знать про слайсы на собеседованиях Go, Golang, Го, Гошка, Авито, Avito, собеседование по Go, интервью Go, разбор собеседования Авито, Go developer interview, Go coding interview, Golang interview questions, Go slices, слайсы в Go, append в Go, capacity и len в Go, cap Go, как работает append, устройство слайсов Go, ловушки Go, ошибки Go, Go vs Rust, Rust, Раст, borrow checker Rust, Go memory management, управление памятью в Go, runtime Go, growslice, nextslicecap, roundupsize, Go runtime source code, Go разработчик, собеседование программиста, IT собеседование, интервью программиста, coding interview, программист Авито, Go programming language, Go programming, программирование Go, Go capacity growth, slice trap, Go append trap.

Смотрите также