Подготовка к интервью

Вопросы на собеседовании по Golang

866 вопросов по Golang с технических собеседований

866 вопросов 1634 компании 353 технологии

Что проверяют на интервью

Как устроена подборка

На странице собраны вопросы по Golang — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: go, backend, concurrency.

Каталог

Результаты поиска

Найдено: 866
Теория

Как различаются errors.Is, errors.As и errors.Join в Go?

Чем отличаются errors.Is, errors.As и errors.Join Улучшения работы с ошибками, появившиеся в Go 1.13 и более поздних версиях errors.Is определяет, присутствует ли в ошибке заданная целевая ошибка: сравнивает её через…

Читать ответ
Теория

Как реализованы индексы на уровне структур данных?

Индекс — это структура данных, предназначенная для ускорения поиска в БД На практике его часто строят на основе B-дерева или B+-дерева B-дерево сохраняет балансировку и обеспечивает логарифмическую сложность поиска…

Читать ответ
Лайвкодинг

Как реализовать graceful shutdown в Go для сервиса с HTTP-сервером и фоновыми воркерами?

Как организовать graceful shutdown HTTP-сервиса с воркерами в Go? Контекст: управление остановкой сервиса, одновременно обрабатывающего HTTP-запросы и выполняющего фоновые задачи Для координации завершения применять…

Читать ответ
Лайвкодинг

Как реализовать middleware в Go?

HTTP middleware представляет собой функцию, которая оборачивает http.Handler Она принимает http.Handler и возвращает другой http.Handler, добавляя логику до или после запуска основного обработчика На практике…

Читать ответ
Лайвкодинг

Как реализовать worker pool в Go и ограничить число горутин?

Как в Go создать worker pool для обработки задач? параллельно выполнять функции с помощью goroutines ограничивать количество активных воркеров через канал-буфер или семафор передавать задания рабочим горутинам через…

Читать ответ
Теория

Как реализовать полиморфизм и инкапсуляцию без наследования с помощью встраивания структур и интерфейсов?

Полиморфизм: динамическое поведение обеспечивают интерфейсы Инкапсуляция: реализация скрывается с помощью неэкспортируемых полей и методов Встраивание структур (composition): добавление функциональности без построения…

Читать ответ
Теория

Как сделать REST API идемпотентным, чтобы повторный запрос не выполнил операцию повторно?

Как обеспечить идемпотентность REST API и исключить дублирование операций? Контекст: REST API и идемпотентность Идемпотентность означает, что повторное выполнение операции не меняет полученный результат. Следует…

Читать ответ
Теория

Как слайс устроен внутри Go?

Слайс состоит из трёх полей: указателя на массив, длины и ёмкости Указатель содержит адрес первого элемента используемого сегмента массива Длина показывает количество доступных элементов (len) Ёмкость задаёт…

Читать ответ
Теория

Как спроектировать backward compatible gRPC API при изменении схемы?

Проектирование gRPC API с сохранением backward compatibility gRPC API описывается с помощью Protocol Buffers (proto) Не удаляйте существующие поля — добавляйте новые, назначая им уникальные номера для расширения схемы…

Читать ответ
Теория

Как указать компилятору, что тип реализует интерфейс?

область: системы типов, интерфейсы в большинстве языков, включая Go и C#, реализация интерфейса неявная и не требует отдельной декларации тип считается реализующим интерфейс, когда в нём определены все методы…

Читать ответ
Теория

Как уменьшить количество аллокаций памяти при конкатенации строк в цикле?

Как сократить число аллокаций памяти при конкатенации строк в цикле? строковые операции: неизменяемость строк конкатенация +=внутри цикла приводит к созданию новых объектов применять буферы: StringBuilder (Java),…

Читать ответ
Теория

Как устроен HTTP Keep-Alive и какую задачу он решает?

в HTTP/1.1 предусмотрена поддержка постоянных соединений Keep-Alive оставляет TCP-соединение открытым после завершения запроса даёт возможность последовательно выполнять несколько запросов через одно соединение…

Читать ответ