snapshot of https://github.com/uber-go/guide.git (master, 2026-09-15; blobs > 131072B omitted)
This commit is contained in:
39
src/lint.md
Normal file
39
src/lint.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Linting
|
||||
|
||||
More importantly than any "blessed" set of linters, lint consistently across a
|
||||
codebase.
|
||||
|
||||
We recommend using the following linters at a minimum, because we feel that they
|
||||
help to catch the most common issues and also establish a high bar for code
|
||||
quality without being unnecessarily prescriptive:
|
||||
|
||||
- [errcheck] to ensure that errors are handled
|
||||
- [goimports] to format code and manage imports
|
||||
- [revive] to point out common style mistakes
|
||||
- [govet] to analyze code for common mistakes
|
||||
- [staticcheck] to do various static analysis checks
|
||||
|
||||
[errcheck]: https://github.com/kisielk/errcheck
|
||||
[goimports]: https://pkg.go.dev/golang.org/x/tools/cmd/goimports
|
||||
[revive]: https://github.com/mgechev/revive
|
||||
[govet]: https://pkg.go.dev/cmd/vet
|
||||
[staticcheck]: https://staticcheck.dev
|
||||
|
||||
> **Note**: [revive] is the modern, faster successor to the now-deprecated [golint].
|
||||
|
||||
## Lint Runners
|
||||
|
||||
We recommend [golangci-lint] as the go-to lint runner for Go code, largely due
|
||||
to its performance in larger codebases and ability to configure and use many
|
||||
canonical linters at once. This repo has an example [.golangci.yml] config file
|
||||
with recommended linters and settings.
|
||||
|
||||
golangci-lint has [various linters] available for use. The above linters are
|
||||
recommended as a base set, and we encourage teams to add any additional linters
|
||||
that make sense for their projects.
|
||||
|
||||
[golangci-lint]: https://github.com/golangci/golangci-lint
|
||||
[.golangci.yml]: https://github.com/uber-go/guide/blob/master/.golangci.yml
|
||||
[various linters]: https://golangci-lint.run/usage/linters/
|
||||
[golint]: https://github.com/golang/lint
|
||||
|
||||
Reference in New Issue
Block a user