blob: 0f2f75a7d9a69a3a2c89556bf026404bac5b1029 [file] [log] [blame] [view]
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
- [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 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.