хватайте -30% на все до 30 ноября
Открытые уроки

Сложные задачи с Go-собеседований

В этом видео:
00:00 — Задача на аллокатор и сборщик мусора
11:10 — Задача на uintptr
22:52 — Задача на структуры
34:07 — Задача на строки
43:37 — Задача на срезы
49:20 — Подготовка к Golang собеседованию

В уроке рассматриваются сложные задачи, которые часто можно встретить на собеседованиях по Go. Автор детально объясняет внутренние механизмы языка, и показывает, как теоретические знания помогают решать практические задачи.

В начале урока разбирается устройство аллокатора и сборщика мусора. Объясняется, как Go управляет памятью, когда запускается GC и почему понимание этих процессов важно для оптимизации. Приводятся примеры ситуаций, где неосвобожденные ссылки мешают сборке мусора, а также показано, как избежать утечек памяти и лишних аллокаций.

Далее следует задача, связанная с типом uintptrt. Автор раскрывает разницу между указателями и этим типом, объясняя, почему uintptrt не гарантирует безопасность в работе со сборщиком мусора. На примерах показано, как легко нарушить работу программы, если неправильно обращаться с адресами памяти, и в каких случаях этот тип всё же полезен.

Следующий блок урока посвящен структурам — их передаче по значению и по ссылке, особенностям встраивания и компоновки. Рассматриваются вопросы выравнивания, внутреннего представления и влияния этих факторов на производительность.

В части о строках подробно разбирается их неизменяемость, хранение данных и типичные ошибки при конкатенации. Автор объясняет, как оптимально работать со строками, избегая лишних копирований и аллокаций.

Раздел о срезах показывает, как устроены срезы, что происходит при расширении и копировании, и почему важно понимать ёмкость и длину среза.

Завершается урок практическими советами по подготовке к собеседованиям: какие темы нужно повторить, на какие вопросы обратить внимание и как тренироваться на реальных примерах.

Автор данного урока — Владимир Балун, Ex-Team Lead в Яндекс, ex-ведущий разработчик в Ozon, ex-разработчик в Mail.ru, Kaspersky Lab, Тинькофф.
Go-собеседования