Added Go resources post
This commit is contained in:
parent
193625958a
commit
fb419d0bea
57
src/posts/2021-09-02-my-recommended-go-resources.md
Normal file
57
src/posts/2021-09-02-my-recommended-go-resources.md
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
---
|
||||||
|
layout: post.html
|
||||||
|
title: "My Recommended Go Resources"
|
||||||
|
date: 2021-09-02
|
||||||
|
tags: Go Golang
|
||||||
|
summary: "I was recently asked by a collegue at work if there are any resource I recommend with getting familiar with Go. It turned into quite a list so I thought i'd share it with everyone (and hopefully keep updating it) in the hopes that others will find it useful."
|
||||||
|
---
|
||||||
|
|
||||||
|
I was recently asked by a collegue at work if there are any resource I recommend with getting familiar with Go. It turned into quite a list so I thought i'd share it with everyone (and hopefully keep updating it) in the hopes that others will find it useful.
|
||||||
|
|
||||||
|
## 📚 Books
|
||||||
|
|
||||||
|
My favourite book for learning Go is - ✨ **[The Go Programming Language](https://www.gopl.io/)** ✨ by Alan A. A. Donovan & Brian W. Kernighan.
|
||||||
|
This was the book I used to pick Go up in the first place. If you already have previous programming experience it's quite a nice book to first read about the specifics of the go language then flip through as needed to the various topics (such as Goroutines) that you might not know about.
|
||||||
|
|
||||||
|
|
||||||
|
Some 🆓 books I've seen recommended:
|
||||||
|
|
||||||
|
* **[Go With The Domain](https://threedots.tech/go-with-the-domain/)** by [Three Dots Labs](https://threedots.tech/)
|
||||||
|
* **[Go Design Patterns](https://www.packtpub.com/product/go-design-patterns/9781786466204)** by Mario Castro Contreras (Free with trial)
|
||||||
|
|
||||||
|
I've also got the following books but haven't yet had a chance to read any of them so can't comment on their usefulness _just yet_:
|
||||||
|
|
||||||
|
* **[Let's Go](https://lets-go.alexedwards.net/)** by Alex Edwards
|
||||||
|
* **[Let's Go Further](https://lets-go-further.alexedwards.net/)** by Alex Edwards
|
||||||
|
* **[Ultimate Go Notebook](https://education.ardanlabs.com/courses/ultimate-go-notebook)** by [Ardan Labs](https://education.ardanlabs.com/)
|
||||||
|
|
||||||
|
There's also **[Everyday Golang](https://openfaas.gumroad.com/l/everyday-golang)** by [Alex Ellis](https://www.alexellis.io/) which I haven't had a chance to pick up yet but if it's anything like Alex's other writing it'll be a great resource!
|
||||||
|
|
||||||
|
## 🧰 Tools and Libraries
|
||||||
|
|
||||||
|
In terms of useful resources, tools and libraries I use a lot:
|
||||||
|
|
||||||
|
* [The Go Playground](https://play.golang.org/) is a fantastic tool for learning and experimenting.
|
||||||
|
* [Fiber](https://gofiber.io/) - My favourite web server framework. Very similar to the Express framework available for NodeJS.
|
||||||
|
* [Viper](https://github.com/spf13/viper) - Config management (env vars, config files, cli flags).
|
||||||
|
* [Cobra](https://github.com/spf13/cobra) - Framework for building amazing CLI tools.
|
||||||
|
* [Afero](https://github.com/spf13/afero) - Filesystem framework (very useful for tests).
|
||||||
|
* [ZeroLog](https://github.com/rs/zerolog) - Very useful logging framework. Support log levels, metadata attributes and different log output styles.
|
||||||
|
* [GORM](https://gorm.io/) - ORM database library with official support for MySQL, PostgreSQL, SQLite and SQL Server.
|
||||||
|
|
||||||
|
## 🔗 Websites / Blog Posts
|
||||||
|
|
||||||
|
* [Awesome Go](https://awesome-go.com/) - List of all things Go.
|
||||||
|
* [Embedding Static Files in Golang](https://bhupesh-v.github.io/embedding-static-files-in-golang/) - Embedding static files into a Go binary.
|
||||||
|
* [Go Recipes](https://github.com/nikolaydubina/go-recipes) - a collection of handy Go commands you can run to help with things like module updates.
|
||||||
|
* [Multi-arch Dockerfile](https://gist.github.com/AverageMarcus/78fbcf45e72e09d9d5e75924f0db4573) - Example multi-stage Dockerfile for building tiny, multi-arch container images for Go applications.
|
||||||
|
* [Go Weekly Newsletter](https://golangweekly.com/) - A fantastic weekly newsletter on all things Go (RSS feed also available).
|
||||||
|
* [Writing Unit Tests](https://blog.alexellis.io/golang-writing-unit-tests/) - Writing Go unit tests.
|
||||||
|
|
||||||
|
## 🧑💻 Suggested by others
|
||||||
|
|
||||||
|
* https://github.com/quii/learn-go-with-tests - Learn Go with TDD.
|
||||||
|
* https://gobyexample.com/ - Common program examples.
|
||||||
|
* https://changelog.com/gotime - Good podcast on the Go community.
|
||||||
|
|
||||||
|
If anyone has any other resources they recommend I'd love to hear about them and update this list. Please feel free to reach out to me on Twitter at [@Marcus_Noble_](https://twitter.com/Marcus_Noble_).
|
Loading…
Reference in New Issue
Block a user