The Go Project
Documentation index
Help links
A Tour on Go (versión en español)
The Go Blog
Go Wiki
Stack Overflow documentation
Dave Cheney - Resources for new Go programmers
Rob Pike, Concurrency is not Parallelism
C.A.R. Hoare, Communicating sequential processes, 1978 paper [PDF], book [PDF]
When Rob Pike says “Go is about composition”, what exactly does he mean?
The Laws of Reflection
Jordan Orelli, How to use Interfaces in Go
Why would anyone choose Docker over fat binaries?
HTTP/2 Server Push
Codewalk: First-Class Functions in Go
Go Slices: usage and internals
Errors and values
Deploying Go servers with Docker
Understanding Golang Packages
Go by example
Go Examples repository
Go Concurrency Patterns: Context
Go Concurrency Patterns: Timing out, moving on
Go Concurrency Patterns: Pipelines and cancellation
Advanced Go Concurrency Patterns
Slice Tricks: all about arrays
Playing with simple and complex associative arrays in GO (joakinen)
Decoding JSON in Golang using json.Unmarshal vs json.NewDecoder.Decode
in Golang, what is the difference between json encoding and marshalling
A simple beginners tutorial to io.Writer in Golang
gopherCon https://www.gophercon.com/ | 2016 videos 2016 talks 2015 videos 2015 talks 2014 videos 2014 talks |
---|---|
gopherfest 2017 | 9:20 - Intros 10:57 - State of Go, Francesc Campoy Flores 37:11 - Event Sourcing – Architectures and Patterns, Matt Ho 1:19:17 - Rob Pike on Upspin 1:52:06 - Lessons Learned from a Context-NATS Integration, Waldemar Quevedo |
dotGo https://www.dotconferences.com | 2016 videos 2015 videos 2014 videos |
All Systems Are Go: An Interview with Rob Pike, the Co-developer of Google's Go Programming Language
# pkg_add go # pkg_add go-websocket # pkg_add go-crypto # pkg_add go-net # pkg_add go-text # pkg_add go-tools # pkg_add go-xlsx # rcctl enable godoc # rcctl start godoc
How to set vim up as a development environment for Go
Requires vim with LUA support
$ doas pkg_add vim-7.4.1467p1-no_x11-lua
1. install pathogen (required by vim-go-ide)
https://github.com/farazdagi/vim-go-ide/issues/12
mkdir -p ~/.vim/autoload ~/.vim/bundle curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
2. Install vim-go-ide
https://github.com/farazdagi/vim-go-ide
git clone git@github.com:farazdagi/vim-go-ide.git ~/.vim_go_runtime sh ~/.vim_go_runtime/bin/install
3. Set TERM colors
If you get 8 colors in your terminal set TERM var in .profile
$ tput colors 8 $ cat "export TERM=screen-256color" >> ~/.profile $ . ~/.profile $ tput colors 256
4. Build “goide” command to start vim in go-ide mode
$ cat > ~/goide #!/bin/sh vim -u ~/.vimrc.go ^D $ chmod 755 goide $ doas cp goide /usr/local/bin
5. Setup environment
$ mkdir -p ~/code/go/src $ cat "export GOPATH=~/code/go" >> ~/.profile
Change arrows in NERDTree for ASCII chars
$ echo "let g:NERDTreeDirArrows=0" >> ~/.vim_go_runtime/custom_config.vim
Inside “goide”:
:GoInstallBinaries
6. Ready to code!
$ cd $GOPATH $ cd src/github.com/(username) $ mkdir a-new-project $ cd a-new-project $ git init $ goide
Read documentation: https://github.com/fatih/vim-go/blob/master/doc/vim-go.txt
7. GitHub setup certificate-based authentication
En caso de que estemos en una nueva máquina hay que crear un certificado para ella y guardar la clave pública en GitHub.
8. Setup a GitHub repo
Enter your GitHub account (i. e. myname) and create an empty repo (i. e. myrepo)
https://help.github.com/articles/adding-a-remote/
git init git add * git commit -m "first commit" git remote add origin git@github.com:myname/myrepo.git git push -u origin master