https://www.bytesizego.com/blog/learning-golang-2024
The way I see it, there are four main ways people like to learn:
• Books/Blogs
• Video Courses/Conference Talks
• Building (or what should I build?)
• Listen
Bytesizego
Learning Go in 2024; From Beginner to Senior
We all learn differently and at different paces. Finding content that is right for us is challenging. Below is my attempt to curate all the great content I have come across over the years into one place to hopefully help folks advance their Golang journey…
https://failsafe-go.dev/
Failsafe-go is a library for building fault tolerant Go applications. It works by wrapping executable logic with one or more resilience policies, which can be combined and composed as needed. Policies include:
• Failure handling: Retry, Fallback
• Load limiting: Circuit Breaker, Bulkhead, Rate Limiter, Cache
• Time limiting: Timeout, Hedge
Failsafe-go
Fault tolerance and resilience patterns for Go
Failsafe-go website
gohack
can be useful in some cases where a quick check is all you need. Since gohack obtains the dependency on its own, it makes it a bit faster to use than cloning manually. That said, I'd be concerned about committing the replace line accidentally, which is why I think the workspace approach is safer (and also more explicit)
https://eli.thegreenplace.net/2024/locally-patching-dependencies-in-go/
My usecase was ethical hacking, I needed to send 500 million of non RFC compliant HTTP/1.1 requests to 2.5 million hosts in a short period of time - ideally in a couple of hours.
https://www.moczadlo.com/2024/how-i-sent-500-million-http-requests-in-under-24h
Moczadlo
I sent 500 million HTTP requests to 2.5 million hosts
How I sent 500 million HTTP requests to 2.5 million hosts in a couple of hours. Deep dive into HTTP/1.1 and Go.
In 2023, Go 1.21 introduced profile-guided optimization, or PGO. With PGO, you can provide the Go compiler a profile of your application at runtime, which the Go compiler then uses to make smarter decisions about how to optimize your code on the next build
https://cloud.google.com/blog/products/application-development/using-profile-guided-optimization-for-your-go-apps
Google Cloud Blog
Using profile-guided optimization (PGO) for your Go apps | Google Cloud Blog
Learn how profile-guided optimization, or PGO, enables the Go compiler to use a profile of your application to optimize your next build.
Supercharge terminal logs with
web browser UI and low-code
Save 90% of time searching and browsing logs
https://logdy.dev
logdy.dev
Logdy - Web based real-time log viewer. Stream any content to a web UI. $ tail -f file.log | logdy
It's like jq, tail, less, grep and awk merged together and available in a clean UI. Self-hosted, single binary.
Recently, I’ve implemented a Unicode tokenizer in in Go and in C#, and my career has been ~equally divided between those languages. Here are some tips moving between them
https://clipperhouse.com/go-csharp/
GitHub
GitHub - clipperhouse/uax29: A tokenizer based on Unicode text segmentation (UAX #29), for Go. Split words, sentences and graphemes.
A tokenizer based on Unicode text segmentation (UAX #29), for Go. Split words, sentences and graphemes. - clipperhouse/uax29
If you use Timer.Reset() in Go 1.22 or earlier, you may be doing it wrong. Even the book 100 Go Mistakes (which is usually right about Go nuances) got it wrong
https://antonz.org/timer-reset/
antonz.org
Resetting timers in Go
Chances are you are doing it wrong.
It's a milestone day for Gophers and WebAssembly: the wasi-preview-2 feature branch of TinyGo has landed in TinyGo's dev branch, bringing WASI P2 support to TinyGo
https://wasmcloud.com/blog/compile-go-directly-to-webassembly-components-with-tinygo-and-wasi-p2
Wasmcloud
Compile Go directly to WebAssembly components with TinyGo and WASI P2 | wasmCloud
Write idiomatic Go and compile to a Wasm component
A useful error handling pattern for Go REST, gRPC, and other services
https://boldlygo.tech/posts/2024-01-08-error-handling/
Boldly Go
Error handling in Go web apps shouldn't be so awkward
A useful error handling pattern for Go REST, gRPC, and other services.