An overview of tools that will help improve your Go code

## All-in-one

  - [golangci-lint](https://github.com/golangci/golangci-lint) - Bundle of `gofmt`, `golint`, `govet` and many other tools that shares work between the different linters for better performance. Recommended by the original author to replace gometalinter (Drop-in replacement).
  - DEPRECATED: [gometalinter](https://github.com/alecthomas/gometalinter) - Automates the installation, configuration and application of `gofmt`, `golint`, `govet` and several other code validation tools.

## Code Formatting

### Articles

  - [Formatting Go Code with gofmt](http://golangtutorials.blogspot.com/2011/06/formatting-go-code-with-gofmt.html)

### Tools

  - [gofmt](https://golang.org/cmd/gofmt/) - Start with the standard Go code formatter
  - [golint](https://github.com/golang/lint) - Detects style mistakes in Go code
  - [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) - Format code and fix your import statements
  - [revive](https://github.com/mgechev/revive) - Fast, configurable, extensible, flexible, and beautiful linter for Go

## Code generation, Templating and Generics

  - [json-to-go](https://mholt.github.io/json-to-go/) - Generate Go structs from JSON.
  - [Go gen](http://clipperhouse.github.io/gen/) - Type-driven code generation (generics)
  - [gojson](https://github.com/ChimeraCoder/gojson) - Another Go struct generator.
  - [gonerics.io](http://bouk.co/blog/idiomatic-generics-in-go/) - Idiomatic Generics in Go
  - [gotemplate](https://github.com/ncw/gotemplate) - Package-based templating system for Go
  - [sqlgen](https://github.com/drone/sqlgen) - Generate Go code for SQL interactions.
  - [zek](https://github.com/miku/zek) - Generate Go struct from XML.

## Refactoring

### Articles

  - [Refactoring with go fmt](http://spf13.com/post/go-fmt/)
  - [gorename - easy refactoring](https://texlution.com/post/gorename/)
  - [Refactoring Tools](http://blog.ralch.com/tutorial/golang-tools-refactoring/) - An overview of refactoring tools for Go.
  - [Quick renaming with gofmt](http://technosophos.com/2015/09/26/quick-go-hack-renaming-structs.html)

### Tools

- [eg](https://godoc.org/golang.org/x/tools/cmd/eg) - Example-based refactoring tool for Go
- [gofmt](https://golang.org/cmd/gofmt/) - Start with the standard Go code formatter
- [gorename](https://golang.org/x/tools/refactor/rename) - Renaming tool for Go

## Error Detection

### Articles

  - [Go Inspection Tools](http://blog.ralch.com/tutorial/golang-tools-inspection/) - An overview of tools for Go code inspection.

### Tools

  - [AlignCheck, StructCheck, VarCheck](https://github.com/opennota/check/) - A suite of tools for checking your code.
  - [errcheck](https://github.com/kisielk/errcheck) - Ensure you check your error conditions.
  - [go vet](http://golang.org/cmd/vet/) - Read this first on how to use the `go vet` command.
  - [SafeSQL](https://github.com/stripe/safesql) - Protect against unsafe SQL in your code.

## Navigation

  - [Go Guru - User Manual](https://golang.org/s/using-guru) - A tool for understanding Go code.
  - [Pythia](https://github.com/fzipp/pythia) - A browser-based UI for Go Guru.

## Visualization

  - [godegraph](http://github.com/kisielk/godepgraph) - A tool for generating dependency graphs of Go code.
