Что такое nil slice в Go?
Nil slice — слайс с нулевым значением: var s []T. У него len и cap равны нулю, он сравним с nil и допускает append, range и copy.
Читать ответПодготовка к интервью
Разбирайте реальные вопросы, сверяйтесь с подробными ответами и готовьтесь по технологиям и компаниям.
Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.
Каталог
Nil slice — слайс с нулевым значением: var s []T. У него len и cap равны нулю, он сравним с nil и допускает append, range и copy.
Читать ответВ Go используют Mutex, RWMutex, WaitGroup, Once, Cond, атомики и каналы. Выбор mutex зависит от того, какие данные и операции нужно защищать.
Читать ответВ Go SOLID применяют через небольшие ответственности, композицию, узкие интерфейсы и зависимости от нужного поведения. Классовое наследование для этого не требуется.
Читать ответУточните, что именно интересно: практические конкурентные задачи, устройство runtime или продуктовая разработка на Go. Интерес к языку не обязан быть единственным мотивом.
Читать ответdbHits++ нужно защитить синхронизацией. Для независимого счётчика удобно использовать atomic.Int64 и операции Add/Load.
Читать ответЛокальные очереди готовых горутин у P уменьшают конкуренцию за одну глобальную очередь и помогают локальности выполнения. При дисбалансе используется перенос работы.
Читать ответEscape analysis — анализ времени жизни и использования значений, помогающий выбрать размещение в стеке или куче. Это не то же самое, что эвакуация данных при росте структуры.
Читать ответВ Go ожидаемые ошибки возвращают значением error и явно проверяют в вызывающем коде. Контекст добавляют wrapping, а причину проверяют через errors.Is/As.
Читать ответsync.Pool помогает повторно использовать временные объекты, уменьшая часть выделений памяти. Выигрыш нужно измерять: пул не всегда полезен и не является обязательным кешем.
Читать ответsync.Pool переиспользует временные объекты и может снизить аллокации и работу GC. Он не гарантирует сохранность объектов между Get и не подходит для надёжного хранения ресурсов.
Читать ответОбъясните границы и способ поставки ваших сервисов. Микросервис — архитектурная характеристика, а не отдельный вид программы на Go.
Читать ответВыберите одну особенность Go, которую можете объяснить на примере: планировщик, интерфейсы, context или инструменты. Личный интерес полезно связать с практической задачей.
Читать ответ