Skip to content

Instantly share code, notes, and snippets.

@gbernady
Last active February 14, 2022 12:05
Show Gist options
  • Save gbernady/7908841bacc317ddd74b59561b01c4d2 to your computer and use it in GitHub Desktop.
Save gbernady/7908841bacc317ddd74b59561b01c4d2 to your computer and use it in GitHub Desktop.
Programming in Go

Basics

https://tour.golang.org

The basics of the basics.

https://gobyexample.com/

A bunch of examples written in Go.

https://quii.gitbook.io/learn-go-with-tests/

Learn Go through test-driven approach.

https://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/

A list of commong mistakes people make when beginning to write Go code.

https://timr.co/go-interfaces-the-tricky-parts

A good explanation of how interfaces work in Go.

The Go Blog

Style guideline for Go packages

https://rakyll.org/style-packages/

One of the famous figures and main contributors to Go language, Rakyll, writes about importance of naming and structuring of the packages.

Effective Go

https://golang.org/doc/effective_go.html

Effective Go article is a community evangel of how Go code should be written.

Code Review Comments

https://github.com/golang/go/wiki/CodeReviewComments

Wiki page from Go repository with idiomatic code habits that would help you to avoid traps of trying to write Java (or C#, or TypeScript, or Javascript) in Go which never works.

Uber Go Style Guide

https://github.com/uber-go/guide/blob/master/style.md

Idiomatic conventions followed at Uber, compliant with goimports, golint and govet.

Structuring applications for Growth

https://www.youtube.com/watch?v=LMSbsW1Xpwg

In this lightning talk, Ben Johnson gives a quick idea of what kind of issues you might face with inappropriate project structure.

Best Practices for Industrial Programming

https://www.youtube.com/watch?v=PTE4VJIdHPg

Peter Bourgon dives deeper into the ways of setting up the project structure that are more adopted within the industry, providing also more justifications on issues that he was facing in his Go journey. A lot of his practices are widely used within the Go community.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment