#452 — March 17, 2023 |
|
The Go Weekly Newsletter |
FlameScope: Visualize CPU Samples from Go Execution Traces — FlameScope is a performance visualization tool from Netflix using flame graphs that can now be used with Go 1.19 thanks to a patch and this work from Felix. “Please note that this is still relatively experimental..” Felix Geisendörfer |
The Russ Cox |
In other proposal related news, Russ also ticked the WebAssembly System Interface / WASI target proposal. |
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 |
A Comprehensive Guide to Structured Logging in Go — Further to the recently accepted proposal (above), this post takes a practical approach comparing the structured logging approach to Better Stack Team |
The One-and-Only, Must-Have, Eternal Go Project Layout? — The author notes this is a misleading title because there’s no such thing as a single way to do it. Nonetheless, there are some things you can do to structure projects well, he says. Christoph Berger |
IN BRIEF:
|
Real World Go Concurrency Examples — Not sure we can ever have enough of these examples, and here you’ll see blocked select statements, Jason Fulghum (DoltHub) |
Reverse Proxy with Dynamic Backend Selection — The example uses Caddy and encodes information into a JWT to route customers to the appropriate backend server, all in just a few lines of code. Artur Rodrigues |
Run Your First Temporal Application with the Go SDK — Enjoy this 10-minute tutorial to explore several runs of a Temporal Workflow application using Temporal and the Go SDK. Temporal Technologies sponsor |
Advanced Markdown Processing in Go — Using gomarkdown/markdown.
|
🛠 Code & Tools |
Task 3.22.0: Task Runner / Andrey Nering |
Scale: Write-Once, Run Anywhere Functions via WebAssembly — Scale is a new WASM-powered function runtime that wants to eventually open up an agnostic development model across languages and clouds (so imagine building a function that could work locally, on CloudFlare Workers, or AWS Lambda without changes). Go is the first language supported both as a client and runtime. Loophole Labs |
Revive 1.3: A Fast(er), Configurable, Flexible Linter for Go — A drop-in replacement of golint that aims to provide a little more structure, configurability, and performance. Minko Gechev |
New Trending Content: Try Knative (Free Course) — In this free course, you'll learn how to deploy serverless containerized applications on Kubernetes by using Knative. Akamai Connected Cloud sponsor |
Chi: Popular Composable Router for Go HTTP Services — Good at helping you write large REST API services that are kept maintainable as your project grows and changes. go-chi |
dynamodbav: Marshal/Unmarshal Utility Functions for DynamoDB — A (very) simple complement to the official AWS SDK v2 for Go. Using generics lets you save a lot of boilerplate code when marshalling and unmarshalling Go types into their DynamoDB representations. Ryan Collingham |
|
|