#364 — May 28, 2021
Go Weekly
Functional Programming in Go with Generics — The author runs through functional options in Go today, and how 1.18 brings improvements through generics – however.. that’s not to say you should go functional wherever possible as Jeremy Bowers opined in "Why Go Getting Generics Will Not Change Idiomatic Go" last year.
Ani Channarasappa
rf: An Experimental Refactoring Tool for Go — When a project says its "incredibly rough and likely to be buggy and change incompatibly", you know you’re in for a fun time. This is a truly experimental command-line Go refactoring tool that lets you address pieces of code with what are called "code addresses." It reminds me of the more general Comby tool.
Russ Cox, Matthew Dempsky, et al.
A Global Serverless Database for Your Golang Apps — Modern applications need a serverless database. Fauna is the "Data API" for modern applications. Whether you’re building new microservices or augmenting existing services applications, Fauna lets you simplify code, reduce costs and ship faster.
Fauna sponsor
go-mod-archiver: A GitHub Actions Workflow to Preserve Old Dependencies — "Afraid of being unable to build historical versions of your Go program?" asked Brad Fitzpatrick. He made this GitHub Actions based tool to archive your go.mod dependency code to git tags in your project to ensure you can rebuild old versions again in future.
Tailscale
QUICK BITS:
-
It's behind an email wall (sorry) but Manning is letting you get a free copy of Go in Action for the next couple of days.
-
As of Go 1.17, you'll be able to shuffle the execution order of tests and benchmarks.
On Benchmarking with Go — A key to accurate benchmarking is ensuring the number of samples taken is adequate to disprove performance hypotheses.
Stone Code
Why Tracing Might Replace (Almost) All Logging
Lightstep sponsor
Top Five Lessons I Learned Working with Go for Two Years — Always interesting to read about someone’s experiences.
Sayed Alesawy
🛠 Code & Tools
gdu 5.0: A Disk Usage Analyzer with Console Interface — Written in Go, naturally. This is a neat tool. Rapidly analyze your disk space usage – it benchmarks strongly against other tools in the space.
Daniel Milde
Revive: A Fast(er), Configurable, Flexible Linter for Go — A drop-in replacement of golint that aims to provide a little more structure and configurability. It boasts being at least double the speed, too.
Minko Gechev
Free Golang Vulnerability Scanner & Fix Advice - Secure Go Projects for Free — Scan your Go code for vulnerabilities in seconds. Fix quickly with automated fix suggestions. Try Snyk for free.
Snyk sponsor
Caire 1.3: A Content-Aware Image Resizing Library — Uses seam carving to stretch out unimportant parts of an image when resizing. We first linked this a few years ago, so it’s neat to see it still getting updates and performance boosts.
Endre Simo
go-map-schema: Simple JSON Type Checking — Check the JSON payload of a request against a schema to catch bad input before any processing occurs.
Kangaroux
color 1.12.0: A Color Text Output Package — Another long standing package that continues to see updates. You’d use this if you want to colorize your program’s output on the terminal in as simple a way as possible.
Fatih Arslan
Render 1.4.0: Easily Render JSON, XML, Binary Data, and HTML Template Responses — A package for rendering various types of output in a more structured way if you’re putting together a Go-powered HTTP service, say.
Cory Jacobsen
go-elasticsearch 7.13.0: The Official Go Client for Elasticsearch — Elasticsearch is a popular search engine/document database used to implement search features in apps.
elastic
go-sqldb: A Pure Go SQL Database for Learning Database Theory — This looks like a solid weekend project.
auxten
Jobs
Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on long-term projects for Riot Games, FOX, Sony, Coinbase, and more.
X-Team