#393 — December 24, 2021 |
Go Weekly |
The Best of Go Weekly in 2021 This is the last issue of the year so we're taking a look back at some of the most popular items we've shared throughout 2021 (plus one new one at the very end of the issue). There's bound to be a few things that escaped your attention at the time :-) |
1. Rust vs. Go: Why They’re Better Together — More than a few times in 2021 we’ve touched on Go and Rust's sibling-esque relationship (such as in the Rust vs Go opinion piece) and in this piece a member of the Go team and a member of the Rust community fittingly came together to balance the two and how they “supplement and support each other.” Will they be getting on even more in 2022? Jonathan Turner and Steven Francia |
2. Thoughts on How to Structure Go Code — Many languages have conventions on how to structure files and directories for an application, but Go leaves it up to you. This is mostly a good thing, right? Jon Calhoun |
|
3. How Does Go Calculate Paschalis Tsilias |
4. The Busy Developers's Guide to Go Profiling, Tracing, and Observability — The first part of a promised lengthy series but what an excellent and straightforward start it is. Felix, whose work is well known in the Go community, deftly explains goroutine scheduling and how Go allocates and collects memory. One to watch. Felix Geisendörfer |
5. A Few Bytes Here, A Few There, Pretty Soon You’re Talking Real Memory — The addition of a 24-byte ‘size class’ in Go 1.16 may not have seemed like a big deal, but it is, and Dave explained what a size class is and why this particular size proves so useful. Dave Cheney |
6. The Darker Corners of Go — A long list of lessons learned about Go aimed at new to intermediate Gophers (including experienced developers coming from other languages). This remains a trove of things that will give you a deeper understanding of Go. Rytis Bieliunas |
Best of the rest:
|
|
🛠 Top Code Items of 2021 |
PTerm: A Modern Go Module to Beautify Console Output — Boasting 100% test coverage and support on Windows, Linux, and macOS, PTerm wants to be your go-to package for creating attractive command line interfaces. Things like bar charts, bulletpoint lists, text centering, spinners, tables, and more. Check out the GitHub repo for screenshots and examples. PTerm Contributors |
Cobra 1.3.0: A 'Commander' for Modern Go CLI Interactions — A hugely popular toolset for creating powerful Go-based CLI apps – used in things like Hugo and by GitHub CLI. Not just a popular link of the year, v1.3.0 actually just dropped as a significant 'fall 2021' release. Steve Francia |
Encore: A Go API Backend Framework with 'Superpowers' — Encore uses code generation and static analysis to take care of a lot of the boilerplate you’d ordinarily end up with when creating APIs. Version 0.11.0 was just released, and it’s one of those things you need to see to get. Encore |
|
go-vcr: Record and Replay Your HTTP Interactions — Why? Faster, deterministic testing of potentially flaky endpoints. If you’ve ever dabbled with Ruby, you might recognize this as somewhat influenced by Ruby’s popular VCR library. Marin Atanasov Nikolov |
Spaghetti: A Dependency Analysis Tool for Go Packages — An interactive Web-based tool (that you run locally) to explore and understand the dependencies of a Go program with the aim of finding ways to eliminate dependencies and clean things up. Alan Donovan |
Lingua 1.0: A Natural Language Detection Library — Boasts being the most accurate natural language detection library in the Go ecosystem, although there aren’t many to choose from. This one supports 75 languages and can work with both short and long texts. Peter M. Stahl |
That's a wrap.. almost. Last week we meant (but forgot) to include an item by Carl M Johnson about why he wrote his own (new) Go HTTP client, so check that out if you're interested to know why he created requests. We're taking a week off for Christmas and the New Year, so we'll be back with you on Friday, January 7, 2022. Many thanks for continuing to support us this year. From all of us here at Cooperpress, season's greetings to you, however you celebrate (or not!) 😄 |