Essential reading before working on a Go repo, according to @BobbyKim
From Go Developer Survey 2020 Results 9 March 2021
- Overall satisfaction is high with 92% of respondents being satisfied using Go.
- The majority of respondents felt productive in Go in less than 3 months, with 81% feeling very or extremely productive in Go.
- The Go Programming Language by Donvoan and Kernighan https://www.gopl.io/
- Effective Go https://golang.org/doc/effective_go
- Go Code Review Comments https://github.com/golang/go/wiki/CodeReviewComments
- Using Go Modules (Parts 1-5) https://blog.golang.org/using-go-modules
- Go Slices: usage and internals https://blog.golang.org/slices-intro
- Arrays, slices (and strings): The mechanics of ‘append’ https://blog.golang.org/slices
- Go maps in actions https://blog.golang.org/maps
- Strings, bytes, runes and characters in Go https://blog.golang.org/strings
- JSON and Go https://blog.golang.org/json
- Contexts and structs https://blog.golang.org/context-and-structs
- Go Concurrency Patterns: Context https://blog.golang.org/context
- Go Concurrency Patterns: Pipelines and cancellation https://blog.golang.org/pipelines
- Concurrency is not parallelism https://blog.golang.org/waza-talk
- Share Memory By Communicating https://blog.golang.org/codelab-share
- Advanced Go Concurrency Patterns https://blog.golang.org/io2013-talk-concurrency
- Why and What https://www.ardanlabs.com/blog/2019/10/modules-01-why-and-what.html
- Projects and Dependencies https://www.ardanlabs.com/blog/2019/12/modules-02-projects-dependencies-gopls.html
- Minimum Version Selection https://www.ardanlabs.com/blog/2019/12/modules-03-minimal-version-selection.html
- Mirrors, Checksums, and Athens https://www.ardanlabs.com/blog/2020/02/modules-04-mirros-checksums-athens.html
- Gopls Improvements https://www.ardanlabs.com/blog/2020/04/modules-05-gopls-improvements.html
- Vendoring https://www.ardanlabs.com/blog/2020/04/modules-06-vendoring.html
- Writing table driven tests in Go https://dave.cheney.net/2013/06/09/writing-table-driven-tests-in-go
- Prefer table driven tests https://dave.cheney.net/2019/05/07/prefer-table-driven-tests
- How to write benchmarks in Go https://dave.cheney.net/2013/06/30/how-to-write-benchmarks-in-go
- Methods, Interfaces, and Embedded Types in Go https://www.ardanlabs.com/blog/2014/05/methods-interfaces-and-embedded-types.html
- Composition with Go https://www.ardanlabs.com/blog/2015/09/composition-with-go.html
- Scheduling in Go (Parts 1-3) https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html
- The Behavior of Channels https://www.ardanlabs.com/blog/2017/10/the-behavior-of-channels.html
- Language Mechanics on Stacks and Pointers https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-stacks-and-pointers.html
- Language Mechanics on Escape Analysis https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-escape-analysis.html
- Language Mechanics on Memory Profiling https://www.ardanlabs.com/blog/2017/06/language-mechanics-on-memory-profiling.html
- Design Philosophy on Data and Semantics https://www.ardanlabs.com/blog/2017/06/design-philosophy-on-data-and-semantics.html
- Interface Semantics https://www.ardanlabs.com/blog/2017/07/interface-semantics.html
- Statically compiling Go programs https://www.arp242.net/static-go.html