- change sql/database to pgxpool
- change insert via pgxtool
- refactor comments
Шаблон репозитория для трека «Сервис сокращения URL».
- Склонируйте репозиторий в любую подходящую директорию на вашем компьютере.
- В корне репозитория выполните команду
go mod init <name>
(где<name>
— адрес вашего репозитория на GitHub без префиксаhttps://
) для создания модуля.
Чтобы иметь возможность получать обновления автотестов и других частей шаблона, выполните команду:
git remote add -m main template https://github.com/Yandex-Practicum/go-musthave-shortener-tpl.git
Для обновления кода автотестов выполните команду:
git fetch template && git checkout template/main .github
Затем добавьте полученные изменения в свой репозиторий.
Для успешного запуска автотестов называйте ветки iter<number>
, где <number>
— порядковый номер инкремента. Например, в ветке с названием iter4
запустятся автотесты для инкрементов с первого по четвёртый.
При мёрже ветки с инкрементом в основную ветку main
будут запускаться все автотесты.
Подробнее про локальный и автоматический запуск читайте в README автотестов.
Скомпилировать для автотестов
cd ~/go/src/self_dev/sprints/shortener/ & go build -o ./cmd/shortener/shortener ./cmd/shortener/*.go &chmod +x ./cmd/shortener/shortener
Запустить автотесты
~/go/external_untrusted_bin/shortenertest-darwin-arm64 -test.v -test.run='^TestIteration1$' -binary-path=./cmd/shortener/shortener
~/go/external_untrusted_bin/shortenertest-darwin-arm64 -test.v -test.run='^TestIteration2$' -binary-path=./cmd/shortener/shortener -source-path=./
Пример запуска с указанием флагов
go run ./cmd/shortener/main.go -a=localhost:8080 -b=http://localhost:8080
go run ./cmd/shortener/main.go -l "Debug" -d "host=localhost user=urls password=jf6y5Sfnxsu
R sslmode=disable port=5432"
go run ./cmd/shortener/main.go -l "Debug" -f "./test.json"
go run ./cmd/shortener/main.go -l "Debug" -d "host=localhost user=urls password=jf6y5Sfnxsu
R sslmode=disable port=5432"
Пример запуска тестов локально
go test ./... -cover -v
Пример формирования моков
create mocks
mockgen -destination=internal/app/mocks/mock_db.go -package=mocks github.com/kripsy/shortener/internal/app/handlers Repository
Пример запуска автотестов из CI CD ~/go/src/go-autotests/bin/shortenertestbeta-darwin-arm64 -test.v -test.run='^TestIteration1$' -binary-path=/Users/18935376/go/src/yandex_education/shortener/bin/shortener -source-path=/Users/18935376/go/src/yandex_education/shortener/ --database-dsn='postgres://urls:[email protected]:5432/urls?sslmode=disable'
go test -v -coverprofile cover.out ./YOUR_CODE_FOLDER/...
go tool cover -html cover.out -o cover.html
open cover.html
save profile memory
curl http://localhost:8080/debug/pprof/heap -o start_heap.ppro
go tool pprof -http=":9091" ./result.pprof
go run -ldflags "-X main.buildVersion=1.0 -X 'main.buildDate=$(date '+%Y-%m-%d %H:%M:%S')' -X main.buildCommit=$(git rev-parse HEAD)" ./cmd/shortener/main.go -l "Debug"
protoc --proto_path=. --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative ./internal/app/proto/service.proto