Starting with Go Language
As with most languages, I start with trying to find a good method for setting up a project, linters, and some examples of TDD. I did not realize at the time what the whole ideal structre was for the Go language, which caused me to search for something that did not exist: the perfect project template.
There are a couple of things you want to setup:
- the GOPATH which points to your go binary you have downloaded
- your PATH that points to
$(go env GOPATH)/binwhich will allow you to use binaries that have been installed by
go get ...
GOROOTwhich is where your go world lives
Still using my latest choice of editors
Spacemacs I have found, I wanted to see what layers are available. The Go Layer has a nice list of things to do:
# run this after installing go, and setting your paths go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v golang.org/x/tools/cmd/guru go get -u -v golang.org/x/tools/cmd/gorename go get -u -v golang.org/x/tools/cmd/goimports
decide if you want to go with the stable version or the latest version of the gometalinter
# stable, binary is gometalinter.v1 go get -u gopkg.in/alecthomas/gometalinter.v1 gometalinter.v1 --install --update # latest, binary is gometalinter go get -u -v github.com/alecthomas/gometalinter gometalinter --install --update
Add stuff to your .spacemacs file for customization in your layers
dotspacemacs-configuration-layers '( ruby python go (go :variables go-use-gometalinter t go-tab-width 2 ) )
and here are some helpful commands that I found useful:
# run your tests SPC m t s
I a nice github repo which list many free books and paid books of the Go language.