866 вопросов по Golang с технических собеседований
866 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по Golang — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: go, backend, concurrency.
Расскажите о реальном пути: какой язык знали раньше, что подтолкнуло к Go и на каких задачах закрепляли знания. Самостоятельное обучение и переход внутри компании равно допустимы.
Контракт map не включает порядок обхода: это отображение ключей в значения, а не упорядоченная последовательность. Так реализация может свободно менять размещение элементов.
В Go есть стеки горутин, куча и области статических данных процесса. Размещение локального значения зависит от escape analysis и оптимизаций, а не только от var или new.
Свяжите каждый использованный примитив с задачей: mutex — общее состояние, WaitGroup — завершение, канал — обмен, Once — инициализация, atomic — отдельный счётчик.
Для необязательной аналитики можно передать событие в ограниченную очередь фонового worker и вернуть ответ. Для гарантированной доставки нужна durable-очередь или outbox.
Go использует конкурентный mark-and-sweep GC: отмечает достижимые объекты и освобождает недостижимые. Сборка требует CPU и кратких остановок приложения.
Канал Go — типизированный способ передачи значений и синхронизации горутин. Небуферизированный канал связывает отправителя с получателем, буферизированный допускает очередь.
Go обычно используют в императивном, процедурном стиле с поддержкой композиции и конкурентности. Классический SQL преимущественно декларативен: описывает нужный результат.
Context передаёт отмену, deadline и небольшие request-scoped значения по цепочке операций. Без него можно писать программы, но согласованно отменять работу сложнее.
Mutex и RWMutex защищают общее состояние, WaitGroup ждёт завершения задач, Once выполняет инициализацию, Cond координирует ожидание условия. Каналы и атомики решают другие задачи синхронизации.