An overview of tools that will help improve your Go code

## All-in-one

  - [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://github.com/bradfitz/goimports) - Format code and fix your import statements

## 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.

## Refactoring

### Articles

  - [Refactoring with go fmt](http://spf13.com/post/go-fmt/)
  - [gorename - easy refactoring](https://texlution.com/post/gorename/)
  - [Refectoring 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

  - [DeferCheck, 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 oracle - user manual](http://golang.org/s/oracle-user-manual) - A tool for understanding Go code
  - [Pythia](https://github.com/fzipp/pythia) - A browser-based UI for the Go Oracle.

## Visualization

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