#443 — January 13, 2023
The Go Weekly Newsletter
What’s New in Go 1.20: Language Changes — The first in a (scheduled) three-part series, this post discusses tweaks to interfaces, generics, unsafe, as well as a new slice to array conversion technique.
Carl M. Johnson
In related news, Go 1.20 release candidate 3 has just been released – its main fix is for this macOS bug so Mac users are particularly encouraged to test against it. Go 1.19.5 and 1.18.10 have also been released this week.
Embedding Our New React UI in Go — Flipt serves its web application from a single Go binary, embedding the static assets therein. Go 1.16’s native embedding set them on a journey that led to React and it works pretty well - no Next.js needed.
George MacRorie (Flipt)
Retool Is the Fast Way to Build Internal Tools — Retool provides a powerful platform to build your UI, connect your data, and publish your app in record time. With 100+ powerful and production ready UI components, you can write custom code nearly anywhere to customize how your apps look and work.
Retool sponsor
Git Forge SourceHut to Block the Go Module Mirror — The creator of SourceHut first complained about Go’s module mirror/proxy ‘DDoSing’ his open source hosting service early last year and it seems it’s still an issue. Could this latest move encourage Google to update its approach?
Drew DeVault
Designing Go Libraries — A long article (based on a talk) that discusses various properties of a well-designed library along with a variety of best practices.
Abhinav Gupta
IN BRIEF:
-
Go for Node.js Developers is a Rosetta Stone of sorts with numerous examples written for both Node and Go – handy if you're moving in either direction.
-
▶️ How Go helped save HealthCare.gov ♻️ – a re-broadcast on the Go Time podcast.
-
Felix Geisendörfer wrote 🐦 a fun Twitter thread going down the rabbit hole of how often Go preempts goroutines. He then created an interesting patch to stop Go from preempting goroutines if there's nothing else to actually do.
▶ Zero Allocations and Benchmarking in Go — Practical 17-minute screencast on improving some simple code by reducing the number of allocations made.
Anthony GG
How to Build More Reusable Go Code using Uber's Fx — FX is a dependency injection framework from Uber that can help make your codebase more flexible and maintainable by avoiding coupling between modules.
The Devops Guy
Why Go Was the Right Choice for CockroachDB — 89.6% of CockroachDB is written in Go, with a smattering of TypeScript, Starlark, Yacc, and a few other languages.
CockroachDB sponsor
Writing a Toy Redis Server in Go — The author is writing a book on creating a simple Redis-like server in Ruby and is exploring the same idea in multiple languages. His Go journey took a couple of stops due to race conditions in his initial version.
Pierre Jambet
🛠 Code & Tools
goread: A Terminal-Based RSS / Feed Reader — This newsletter has an RSS feed if you want to test it out. Built using the wonderful Bubble Tea TUI framework.
Adam Piaseczny
gnet 2.2: High-Performance, Non-Blocking, Event-Loop Networking Library — "It makes direct epoll and kqueue syscalls rather than using the standard Go net package, and works in a similar manner as netty and libuv."
Andy Pan
Don’t Let Your Issue Tracker Be a Four-Letter Word. Use Shortcut — The best issue tracking software is one that software developers are actually happy to use.
Shortcut (formerly Clubhouse.io) sponsor
-
Excelize 2.7
↳ Library for working with Excel/XLSX documents. -
Stats 0.7
↳ Library of statistical functions. -
Pie 2.3
↳ Utility functions for common slice and map operations. -
go-streams 0.9
↳ Lightweight stream processing library. -
fasthttp 1.44 – Fast HTTP package.
-
Sarama 1.38 – Apache Kafka client.
-
Ginkgo 2.7 – Testing framework.
Jobs
Site Reliability Engineer — Join our "kick ass" team. Our software team operates from 17 countries and we're always looking for more exceptional engineers.
Sticker Mule
Find a Job Through Hired — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers.
Hired
WORTH A LOOK:
-
Awesome Go Style – Curated list of Go style guides.
-
GoReplay – Capture and replay live HTTP traffic in a test environment.
-
dicom – Parse DICOM medical imagery from Go.
-
retry-go – Simple retry mechanism.
-
ov – Feature-rich terminal pager.