#441 — December 16, 2022 |
|
The Go Weekly Newsletter |
The Best of the Go Newsletter in 2022 This is the final issue of the year (we're back on January 6, 2023) so we're revisiting the most popular links (and releases) from this year. There'll be a few useful resources that escaped your attention or that you've since forgotten about so enjoy! 😁 |
1: Effective Error Handling in Go — The most popular item of the year came in the very first issue of 2022 and presaged what would be a common concern this year: error handling. Brandon covered the basics, as well as some simple strategies you can follow to ensure your programs are more robust and easier to debug. Brandon Schurman |
2: All You Need(ed) to Know About Go 1.18 (in a Giant Diagram) — Go 1.18 was released in March, but someone (unnamed) put together an interesting diagram of the new things in 1.18 using the Miro whiteboarding tool. The 1.18 release notes ended up providing a more thorough and traditional overview of this year's big release, though. Miro |
|
3: A Proposal: A Greg Weber |
4: An Official 'Getting Started with Generics' Tutorial — Generics were the most awaited feature in this year's Go 1.18 release, so it was great to see an official tutorial introducing the basics of using them. Go Docs |
5: Getting Familiar with Workspaces — Go 1.18’s other big feature, workspaces, also had its day in the sun (well, on the official Go blog anyway). “Workspaces in Go 1.18 let you work on multiple modules simultaneously without having to edit go.mod files for each module.” Beth explains how to get started. Beth Brown (Go Team) |
6: Making a Go Program 70% Faster with a One Character Change — How could we resist a title like that? This was the tale of tracking down a ‘silly mistake’ that led to a program running more slowly than it should have been. Harry Marr |
7: Google's Internal Go Style Guide — What goes for Google doesn’t necessarily go for everyone else, but it was interesting to see their stance on writing idiomatic Go. The actual style guide is here and is pretty short and sweet, focusing on clarity, simplicity and consistency as core tenets. |
8: 'Crimes' with Go Generics — Many Go developers warned of a likely period of churn and trial and error as everyone began to learn when and when not to use generics. This post focused on the latter and on 'bad ideas' which, perhaps, could help you refine your own attitudes to using generics. Xe Iaso |
|
AND A FEW MORE: |
🛠 Code & Tools |
1: Wails v2: Build Cross-Platform Desktop Apps with Go — Wails is an Electron-a-like for Go for building cross-platform desktop apps using Go as the base language and JavaScript on the front (and, yes, JS can call your Go functions). This was by far the most popular code and tool related link of the year. Lea Anthony |
2: PocketBase: A Go-Powered Backend in One Binary — An interesting project that could replace Firebase in numerous scenarios. It’s written in Go but ultimately acts as the backend to your frontend JavaScript app. It uses SQLite and you get an admin dashboard built-in with file and user management too. Live demo and rather nice docs. Gani Georgiev |
3: GoPlay: A Better Go Playground? — Powered by React, the “better” here includes a dark theme, autocompletion, a ton of loadable snippets, file loading/saving, and WASM support. There’s also a Docker image so you can have a private playground of your own. Denis Sedchenko |
|
4: Bud: A Full-Stack Web Framework for Gophers — In classic Ruby on Rails style, the creator has ▶️ a fantastic 15-minute screencast showing off how to use it – not to build a blog, but a Hacker News client of sorts. Live Bud |
5: Charm Gum: A Tool for 'Glamorous' Shell Scripts — Gum lets you create a CLI-based wizard just by providing a few arguments. The README is fantastic and packed with examples and animations. If you’d rather brew your own, Bubble Tea and Lip Gloss, upon which Gum depends, are available too. Charm |
6: Buffalo 1.0: Rapid Web Development in Go — Buffalo has been around for many years, and while 1.0 wasn’t a big, feature packed release, it was still a key milestone and remains the latest major version. If you’re new to Buffalo, there are plenty of tutorials to get you going. Buffalo Team |
|