Предварительные требования¶
Go 1.22+¶
В bash-сессиях без .bashrc
В CI, скриптах и некоторых IDE .bashrc не загружается. Добавляй явно:
Почему Go 1.22?
rangeпо целым числам:for i := range 10 { ... }- Пакеты
slices,mapsиз stdlib log/slog— структурированное логирование (используем для stderr логов)
Инструменты разработки¶
# goreleaser — кросс-компиляция и автоматические релизы
go install github.com/goreleaser/goreleaser/v2@latest
# golangci-lint — линтер (включает gofmt -s, govet, errcheck и др.)
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
# goimports — авто-импорты (опционально, удобен в IDE)
go install golang.org/x/tools/cmd/goimports@latest
Проверить:
goreleaser --version # goreleaser version 2.x.x
golangci-lint --version # golangci-lint has version 1.x.x
Git + GitHub CLI¶
# Настроить user (если не настроен)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
# GitHub CLI (для управления PR и releases)
# Ubuntu/Debian:
sudo apt install gh
# Авторизация
gh auth login
API токен¶
Для вашего API вам понадобится токен доступа. Храните его в .env:
Важно
.env должен быть в .gitignore. Никогда не коммитьте реальные токены!
Чеклист¶
-
go versionпоказывает >= 1.22 -
goreleaser --versionработает -
golangci-lint --versionработает -
git --versionработает - API токен получен и записан в
.env