Check that no inits functions are present in Go code.
Init functions cause an import to have side effects, and side effects are hard to test, reduce readability and increase the complexity of code.
https://peter.bourgon.org/blog/2017/06/09/theory-of-modern-go.html https://twitter.com/davecheney/status/871939730761547776
go get 4d63.com/gochecknoinits
gochecknoinits
gochecknoinits ./...
gochecknoinits [path] [path] [path] [etc]
Add -t
to include tests.
gochecknoinits -t [path]
Note: Paths are only inspected recursively if the Go /...
recursive path suffix is appended to the path.