Что такое go generate?

Middle
757 просмотров
AFK Offer AI

go generate — инструмент для кодогенерации. Ты пишешь в исходнике специальный комментарий, а go generate ./... запускает указанную команду.

//go:generate stringer -type=Color
//go:generate mockgen -source=repo.go -destination=mock_repo.go
//go:generate protoc --go_out=. service.proto

Важно: go generate не запускается автоматически при go build — его надо вызывать явно. Сгенерированный код коммитится в репо. Типичные применения: генерация моков, enum-строк, protobuf, sqlc. По сути это просто удобная обёртка для запуска произвольных команд, привязанных к конкретным файлам.

Следующий вопрос

Как работает gRPC streaming?