golang

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Golang Development Skill

Golang开发技能

Activation Triggers

激活触发条件

  • Working with
    .go
    files,
    go.mod
    ,
    go.sum
    ,
    go.work
  • User mentions Go, Golang, or Go-specific terms
  • Questions about Go libraries, frameworks, or tooling
  • Concurrency patterns (goroutines, channels, context)
  • 处理
    .go
    文件、
    go.mod
    go.sum
    go.work
  • 用户提及Go、Golang或Go专属术语
  • 关于Go库、框架或工具的问题
  • 并发模式(goroutines、channels、context)

Workflow: Research-First Approach

工作流:先调研的方法

Before implementing, gather context from authoritative sources:
undefined
在实现之前,从权威来源收集相关信息:
undefined

Context7 query-docs for repo-specific docs

Context7 query-docs for repo-specific docs

query-docs({ libraryId: "/gin-gonic/gin", query: "how to set up middleware" }) query-docs({ libraryId: "/uber-go/zap", query: "structured logging setup" })
query-docs({ libraryId: "/gin-gonic/gin", query: "how to set up middleware" }) query-docs({ libraryId: "/uber-go/zap", query: "structured logging setup" })

gh search code for real-world implementation examples

gh search code for real-world implementation examples

gh search code "ratelimit.New(" --language=go gh search code "errgroup.WithContext(" --language=go
gh search code "ratelimit.New(" --language=go gh search code "errgroup.WithContext(" --language=go

For style/idiom questions

For style/idiom questions

query-docs({ libraryId: "/uber-go/guide", query: "style guide patterns and idioms" })
undefined
query-docs({ libraryId: "/uber-go/guide", query: "style guide patterns and idioms" })
undefined

Notes

说明

Repository routing table lives in
reference.md
.
仓库路由表位于
reference.md
中。

CLI Quick Reference

CLI速查参考

Module Management

模块管理

bash
go mod init <module>       # Initialize module
go mod tidy                # Sync dependencies
go get <pkg>@latest        # Add/update dependency
go get <pkg>@v1.2.3        # Specific version
go mod download            # Download dependencies
go mod why <pkg>           # Why is pkg needed
go mod graph               # Dependency graph
bash
go mod init <module>       # Initialize module
go mod tidy                # Sync dependencies
go get <pkg>@latest        # Add/update dependency
go get <pkg>@v1.2.3        # Specific version
go mod download            # Download dependencies
go mod why <pkg>           # Why is pkg needed
go mod graph               # Dependency graph

Build & Run

构建与运行

bash
go build ./...             # Build all packages
go run .                   # Run current package
go install ./cmd/...       # Install binaries
go generate ./...          # Run go:generate directives
bash
go build ./...             # Build all packages
go run .                   # Run current package
go install ./cmd/...       # Install binaries
go generate ./...          # Run go:generate directives

Testing

测试

bash
go test ./...              # Run all tests
go test -v ./...           # Verbose output
go test -race ./...        # Race detector
go test -cover ./...       # Coverage summary
go test -coverprofile=c.out ./... && go tool cover -html=c.out  # Coverage HTML
go test -bench=. ./...     # Run benchmarks
go test -fuzz=FuzzXxx ./...  # Fuzz testing
go test -run=TestName      # Run specific test
go test -count=1           # Disable test caching
bash
go test ./...              # Run all tests
go test -v ./...           # Verbose output
go test -race ./...        # Race detector
go test -cover ./...       # Coverage summary
go test -coverprofile=c.out ./... && go tool cover -html=c.out  # Coverage HTML
go test -bench=. ./...     # Run benchmarks
go test -fuzz=FuzzXxx ./...  # Fuzz testing
go test -run=TestName      # Run specific test
go test -count=1           # Disable test caching

Linting (golangci-lint)

代码检查(golangci-lint)

bash
golangci-lint run          # Run all linters
golangci-lint run --fix    # Auto-fix issues
golangci-lint linters      # List available linters
bash
golangci-lint run          # Run all linters
golangci-lint run --fix    # Auto-fix issues
golangci-lint linters      # List available linters

Workspaces (multi-module)

工作区(多模块)

bash
go work init ./mod1 ./mod2 # Initialize workspace
go work use ./mod3         # Add module to workspace
go work sync               # Sync workspace
bash
go work init ./mod1 ./mod2 # Initialize workspace
go work use ./mod3         # Add module to workspace
go work sync               # Sync workspace

Other Tools

其他工具

bash
go fmt ./...               # Format code
go vet ./...               # Static analysis
go doc <pkg>               # View documentation
go env                     # Environment variables
go version                 # Go version
bash
go fmt ./...               # Format code
go vet ./...               # Static analysis
go doc <pkg>               # View documentation
go env                     # Environment variables
go version                 # Go version

Files

文件

  • reference.md
    - Go 1.24+ features, project layout, Uber style highlights
  • cookbook/testing.md
    - Table-driven tests, testify, mocking, benchmarks
  • cookbook/concurrency.md
    - Goroutines, channels, context, errgroup
  • cookbook/patterns.md
    - Functional options, DI, error handling
  • reference.md
    - Go 1.24+特性、项目布局、Uber风格要点
  • cookbook/testing.md
    - 表驱动测试、testify、Mocking、基准测试
  • cookbook/concurrency.md
    - Goroutines、Channels、Context、errgroup
  • cookbook/patterns.md
    - 函数选项模式、依赖注入、错误处理