С какими Go библиотеками работал
Что проверяют
Знаете ли вы экосистему Go и, главное, умеете ли обходиться стандартной библиотекой. Сообщество ценит малое число зависимостей, поэтому длинный список сторонних пакетов без объяснения, зачем каждый, работает против вас.
Как отвечать
Разложите по слоям и на каждом скажите, что берёте из stdlib, а что снаружи.
- HTTP:
net/httpзакрывает большинство задач, а начиная с Go 1.22 его маршрутизатор понимает метод и параметры пути, так что сторонний роутер нужен реже. Из внешних обычноchi(совместим с интерфейсами stdlib) илиgin, если команда уже на нём. - База:
database/sqlплюс драйвер, для PostgreSQL этоpgx. Дальше выбор подхода:sqlxдля удобного сканирования,sqlcдля генерации кода из SQL,gorm, когда нужна полноценная ORM. - Конфигурация и логи:
viperили разбор переменных окружения своими силами; логи с Go 1.21 удобно вести черезlog/slogиз stdlib, из внешних живыеzapиzerolog. - Тесты:
testifyдля утверждений,gomockилиmockeryдля заглушек,testcontainers-goдля интеграционных. - Остальное:
grpc-goс protobuf,errgroupизgolang.org/x/sync,golangci-lintв сборке.
Ценнее списка рассказ о том, как вы выбираете: смотрите на активность репозитория, размер зависимостей, наличие контекста в сигнатурах и на то, не заменяется ли пакет тридцатью строками своего кода.
Где спотыкаются
Тянут веб-фреймворк по привычке и не могут объяснить, что он даёт поверх net/http. Встречный вопрос «а что именно вам тут нужно от фреймворка» проваливают чаще всего.
Называют ORM и не знают её цены: сколько запросов уходит в базу на самом деле, почему автоматическая миграция схемы не годится для продакшена, как посмотреть сгенерированный SQL.
Перечисляют пакеты, но не говорят про идиомы, которые важнее: сквозной context.Context, оборачивание ошибок через %w и разбор через errors.Is и errors.As, отсутствие глобального состояния ради тестируемости.