跳转到内容

Golang-recipe

  1. Get packages without tests
    Terminal window
    go list -json ./... | jq -rc 'select((.TestGoFiles | length)==0) | .ImportPath'
  2. Get Go version of current module
    Terminal window
    go mod edit -json | jq -r .Go
  3. 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
  4. 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 '\['
  5. 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
  6. Get available module versions
    Terminal window
    go list -m -versions github.com/google/gofuzz
  7. Show compiler optimization decisions on heap and inlining
    Terminal window
    go build -gcflags="-m -m" . 2>&1 | grep inline
    Disable inlining:
    Terminal window
    go build -gcflags="-l" .
  • 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@latest
    go install golang.org/x/tools/cmd/guru@latest
  • Usage:
    Terminal window
    pythia net/http
  • Install:
    Terminal window
    go install go.uber.org/mock/mockgen@latest
  • Usage:
    Terminal window
    mockgen -source=foo.go [other options]
  • Link 更多描述
  • Install:
    Terminal window
    go install golang.org/x/tools/go/analysis/passes/fieldalignment/cmd/fieldalignment@latest
  • Usage:
    Terminal window
    fieldalignment main.go
  • 介绍: 用于检测可以使用新版本功能的工具
  • Install:
    Terminal window
    $ go run golang.org/x/tools/gopls/internal/analysis/modernize/cmd/modernize@latest -fix -test ./...