32 вопроса
Практика
Как бы ты определил пакет в языке программирования Go и для чего он нужен?
Какие инструменты и техники ты обычно используешь, чтобы дебажить Go код?
Какая цель у Go vet и какие проблемы он находит в Go коде?
Как ты пишешь функцию бенчмарка в Go, и можешь ли ты привести пример с функцией BenchmarkAdd?
Для чего нужен benchmarking в Go и как его обычно делают с помощью инструмента `go test`?
Как правильно писать тестовую функцию в Go, и можешь ли ты дать пример с использованием пакета `testing`?
Какая цель у команды "go test" в Go?
Какие стратегии ты можешь использовать, чтобы улучшить производительность кодирования и декодирования JSON в Go?
Какой смысл и как работает пакет `reflect` в Go?
Что такое unsafe пакет, и почему его обычно не рекомендуют использовать в общих целях?
Для чего нужна команда `go doc` в Go?
Зачем нужна папка "pkg" в Go проектах и как её использовать?
Как ты работаешь с JSON данными в Go, и какой пакет стандартной библиотеки Go обычно используется для сериализации и десериализации JSON?
Зачем нужен пакет context в Go и как он работает?
Как ты правильно указываешь build constraints в своём коде и где их нужно размещать в файле?
Что такое build constraint и как его использовать, чтобы включать или исключать файлы во время сборки?
Как ты импортируешь пакет в Go, и какой правильный синтаксис для этого?
Как ты инициализируешь новый модуль в Go, и какая команда для этого нужна?
Для чего нужны команды `go mod`, `go mod tidy` и `go clean -modcache` в Go, и как они помогают управлять зависимостями и файлами модулей в проекте Go?
Зачем нужна команда `go fmt`, и как она форматирует исходный код Go по стандартному стилю?
Какая цель у функции init в Go и когда она выполняется?
Как ты разбираешься с циклическими зависимостями между Go пакетами, и какие стратегии можно использовать, чтобы эффективно их решить?
Чем отличаются panic и error в Go, и в каких ситуациях что использовать?
Что такое разыменование нулевого указателя, и какие шаги можно предпринять, чтобы это не произошло?
Как ты можешь определить свой тип ошибки в Go, реализовав интерфейс error?
Как ты справляешься с паниками в production коде и восстанавливаешься после них, чтобы приложение оставалось стабильным и было легче дебажить?
Как ты реализуешь и управляешь timeouts для запросов, используя context пакет в Go?
Как используется функция `recover` в Go и в каком контексте её обычно применяют?
Что означает слово "recover" в контексте восстановления контроля после паники?
Что такое panic в Go и в каких ситуациях его обычно используют?
Как ты обрабатываешь ошибки в Go и какой стандартный подход для проверки и реагирования на ошибки, используя тип error?
Как бы ты подошел к обработке ошибок и логированию в крупномасштабном Go-приложении, включая использование кастомных типов ошибок, структурированное логирование с подходящими библиотеками, управление ресурсами с помощью defer и централизованную обработку ошибок для типичных операций?