GO concurrency guide -
Thread safety in Go -
Producer Consumer Problem in Go -
- https://www.ibm.com/blog/producer-consumer-in-go/
- https://gist.github.com/JMSwag/ca81d0b58fcce8d6c2c6
Dinning Philosopher Problem -
Concurrent prime sieve -
Why Go programming?
Scheduling In Go -
- https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part1.html
- https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html
- https://www.ardanlabs.com/blog/2018/12/scheduling-in-go-part3.html
Go concurrency examples
Videos: (MUST WATCH) Go Concurrency Patterns:
Concurrency is not Parallelism by Rob Pike
BOOKS -
-
Textbook: Introduction to Multithreaded, Distributed, and Parallel Programming (2000)
has the best and most complete teaching on the Go style of concurrent programming, which is actually named Concurrent Sequential Processes. Many other styles of concurrent programming are also explained, compared, and contrasted, both for shared memory as well as distributed memory systems. -
Textbook: The Go Programming Language
has two excellent chapters on concurrency with examples that steadily grow in complexity. It's not free, but it's well worth the price IMO as it contains useful information for all features of the language except generics.
A curated list of awesome Go frameworks, libraries, and software. Inspired by awesome-python. Github:: https://github.com/avelino/awesome-go#contents
-
Interface and Composition for effective unit testing in Go
-
Simple clean Go REST API architecture with dependency injection and mocking example, following SOLID principles.
-
An implementation of JSON Schema, draft v4 v6 & v7 - Go language
- https://github.com/golang/go/wiki/CommonMistakes#using-goroutines-on-loop-iterator-variables
- https://gist.github.com/posener/92a55c4cd441fc5e5e85f27bca008721 Be Careful with Table Driven Tests and t.Parallel()
- https://stackoverflow.com/questions/36167200/how-safe-are-golang-maps-for-concurrent-read-write-operations Map concurrent read write
- https://medium.com/@vCabbage/go-are-pointers-a-performance-optimization-a95840d3ef85
- https://segment.com/blog/allocation-efficiency-in-high-performance-go-services/
First you should take the language tour Then, you should visit:
- https://golang.org/doc/code.html to learn how to organize your Go workspace
- https://golang.org/doc/effective_go.html be more effective at writing Go
- https://golang.org/ref/spec learn more about the language itself
- https://golang.org/doc/#articles a lot more reading materialThere are some awesome websites as well:
- https://blog.gopheracademy.com great resources for Gophers in general
- http://gotime.fm awesome weekly podcast of Go awesomeness
- https://gobyexample.com examples of how to do things in Go
- http://go-database-sql.org how to use SQL databases in Go
- https://dmitri.shuralyov.com/idiomatic-go tips on how to write more idiomatic Go code
- https://divan.github.io/posts/avoid_gotchas will help you avoid gotchas in Go
- https://golangbot.com tutorials to help you get started in Go
- https://tutorialedge.net a collection of articles around various aspects of GoThere's also an exhaustive list of videos http://gophervids.appspot.com related to Go from various authors.If you prefer books, you can try these:
- http://www.golangbootcamp.com/book
- http://gopl.io/
- https://www.manning.com/books/go-in-action (if you e-mail @wkennedy at bill@ardanlabs.com you can get a free copy for being part of this Slack)
- If you want to learn how to organize your Go project, make sure to read:
- Once you are accustomed to the language and syntax, you can read this series of articles for a walk through of the various standard library packages:
- Finally, this will give you a list of even more resources to learn Go: