Golang-recipe
go list
Command
Section titled “go list Command”- Get packages without tests
Terminal window go list -json ./... | jq -rc 'select((.TestGoFiles | length)==0) | .ImportPath' - Get Go version of current module
Terminal window go mod edit -json | jq -r .Go - Get Go versions of upstream modules
Terminal window go list -deps -json ./... | jq -rc 'select(.Standard!=true and .Module.GoVersion!=null) | [.Module.GoVersion,.Module.Path] | join(" ")' | sort -V | uniq - Get directly dependent modules that can be upgraded
Terminal window go list -u -m $(go list -m -f '{{.Indirect}} {{.}}' all | grep '^false' | cut -d ' ' -f2) | grep '\[' - Get upstream modules without Go version
Terminal window go list -deps -json ./... | jq -rc 'select(.Standard!=true and .Module.GoVersion==null) | .Module.Path' | sort -u - Get available module versions
Terminal window go list -m -versions github.com/google/gofuzz - Show compiler optimization decisions on heap and inlining
Disable inlining:
Terminal window go build -gcflags="-m -m" . 2>&1 | grep inlineTerminal window go build -gcflags="-l" .
go-plantuml
Section titled “go-plantuml”- Install:
Terminal window go install github.com/bykof/go-plantuml@latest - Usage:
Terminal window go-plantuml generate -d . -r -o graph.puml - 在线生成: PlantUML
Make Graph of Function Calls in Package with go-callvis
Section titled “Make Graph of Function Calls in Package with go-callvis”- Install:
Terminal window go install github.com/ofabry/go-callvis - Usage:
Terminal window go-callvis .
Explore Go Code in Browser Powered by go-guru
with pythia
Section titled “Explore Go Code in Browser Powered by go-guru with pythia”- Install:
Terminal window go install github.com/fzipp/pythia@latestgo install golang.org/x/tools/cmd/guru@latest - Usage:
Terminal window pythia net/http
Generate Mocks with mockgen
Section titled “Generate Mocks with mockgen”- Install:
Terminal window go install go.uber.org/mock/mockgen@latest - Usage:
Terminal window mockgen -source=foo.go [other options]
fieldalignment
Section titled “fieldalignment”- Link 更多描述
- Install:
Terminal window go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest - Usage:
Terminal window fieldalignment main.go
modernize
Section titled “modernize”- 介绍: 用于检测可以使用新版本功能的工具
- Install:
Terminal window $ go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...