#437 — November 18, 2022 |
|
The Go Weekly Newsletter |
Making a Go Program 70% Faster with a One Character Change — How can you resist a title like that? This is the tale of tracking down a ‘silly mistake’ that led to a program running more slowly than it should have been. Slight spoiler: the character was Harry Marr |
Google's Go Style Guide — What goes for Google doesn’t necessarily go for everyone else, but it’s interesting to see their stance on writing idiomatic Go. The actual style guide is here and is pretty short and sweet, focusing on clarify, simplicity and consistency as tenets. Over on Reddit, Google’s Matt Proud noted that this is early days and there’s still work to be done in sharing this work more widely. |
Gophers - Opportunity is Knocking — We’re a premier software engineering firm looking for mid to senior level engineers to help us develop advanced software solutions and applications in Go. Got at least 1 year of professional Go experience and located in the Americas or Western Europe? We want to hear from you. Ardan Labs sponsor |
▶ A Consistent Logging Format for Go — Last week we linked to the structured logging proposal but here’s its author selling it to you more directly in an 11-minute screencast if you find it easier to digest this way. Jonathan Amsterdam (Google) |
IN BRIEF
|
RPC in Go using Twitch's Twirp — Twirp is like gRPC but somewhat easier to deploy and specifically focused on Go to Go use cases. Twitch wrote more about it at the project’s release in 2018. Gurleen Sethi |
▶ How To Compose Interfaces — A short (11-minutes) and sweet screencast on composability with interfaces. Anthony’s channel is well worth a skim as he covers Go and Rust. Just two days ago he also released a screencast on ▶️ building a JSON API in Go. Anthony GG |
Three Ways to Embed a Commit Hash in Go Programs
|
🛠 Code & Tools |
VarInt: Memory Efficient Arbitrary Bit Width Integers — If, for some reason, you want to store a hundred 100 bit integers in exactly 10000 bits, this minimalist library is for you. It also provides some basic arithmetic and bitwise ops. Kostiantyn Masliuk |
golang-lru: Fixed-Size Thread-Safe LRU Cache — The latest release adds support for generics 🎉 HashiCorp |
🍰 Pie: A Utility Library for Dealing with Slices — Ways to work with slices with a focus on type safety, performance and immutability. Elliot Chance |
Register for Unblock 22 - A CI/CD Conference by Buildkite — Experience the 2-day virtual conference with industry experts who are defining the future of how we deliver software. Buildkite sponsor |
Tamarin: An Embeddable Scripting Language Written in Go — A simple language with a broadly JavaScript inspired syntax. The fantastic book 📗 Writing an Interpreter in Go by Thorsten Ball is credited heavily by the author (and well worth reading for yourself, too.) Curtis Myzie |
Mockery: A Mock Code Generator for Go Interfaces — Why write boilerplate when Mockery can do it for you? Vektra |
Sablier: An API for Running Containers on Demand — .. and shutting them down automatically once there’s no activity. Alexis Couvreur |
go-quartz: Simple, Zero-Dependency Scheduling Library — Inspired by the similarly named Quartz scheduler for Java. Eugene R. |
Gorse: A Universal Open Source 'Recommender System' — Gorse uses ML to provide a RESTful API of recommendations based on the data you feed it. It includes a dashboard and API docs. zhenghaoz |
|
|