---
title: "Effective error handling in go"
publication: "Go Weekly"
issue: 395
published_at: "2022-01-14"
canonical_url: "https://golangweekly.com/issues/395"
---

Plus a Go powered mobile game, how npm could learn from Go, and what the Go team would remove from Go.. if they could! |        

#​395 — January 14, 2022 

[Unsubscribe](https://golangweekly.com/leave/*|UID|*)|[Read on the Web](https://golangweekly.com/issues/395)   

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/fjgupu6hgngoyomndfqr.jpg)](https://github.com/Lallassu/bintris#-bintris)   

[Bintris: A 'Binary Tetris' Mobile Game Built in Go](https://github.com/Lallassu/bintris#-bintris) — It’s not every day we get to see a _mobile_ game developed in Go, let alone an open source one. It’s [on the Play Store too](https://play.google.com/store/apps/details?id=go.lang.bintris) if you want to support the author’s efforts. Worth a look at the code if you want to target mobile devices from Go too. 

Magnus Lallassu   

[Effective Error Handling in Go](https://earthly.dev/blog/golang-errors/) — Demonstrates the basics of handling errors in Go, as well as some simple strategies you can follow in your code to ensure your program is robust and easy to debug. 

Brandon Schurman   [![\](https://copm.s3.amazonaws.com/6dafaa38.png)](https://get.mux.com/3ekCeeJ) 

[Powerful API and Analytics Makes Building Video in Your Go App a Snap](https://get.mux.com/3ekCeeJ) — Mux is an API-first platform that makes it easy to build video into your apps. Live and on-demand video stream beautifully to any device, plus analytics are built-in so you can track engagement. 

Mux sponsor   

**BRIEF BYTES:** 

- The `validator` package is [looking for additional maintainers](https://github.com/go-playground/validator/issues/874) if you're keen to take on a new challenge.
- There's some official documentation [for Go 1.18's forthcoming 'fuzzing' feature](https://tip.golang.org/doc/fuzz/) if you want to get ahead.
- Dominic St-Pierre [▶️ explains why Go is a great language](https://www.youtube.com/watch?v=o-4DeG6SoZA) for blind and vision-impaired developers _(1 minute 30 seconds)_.
- A developer posted a Twitter thread of [things that caught his attention](https://twitter.com/nodirt_/status/1478419198174896130) as a Go developer while trying to learn Rust.   

[What npm Should Do Today to Prevent a New 'Colors'-Style Problem Tomorrow](https://research.swtch.com/npm-colors) — Essentially a JavaScript developer went a little rogue on his own projects and [messed them up](https://www.theregister.com/2022/01/10/npm_fakerjs_colorsjs/) to an extent where they were unusable. This broke numerous downstream projects, and Russ Cox thinks that npm, in particular, could learn a little from Go’s approach to dependencies. 

Russ Cox   

▶[Things Google's Go Team Would Remove From The Language (If They Could)](https://www.youtube.com/watch?v=MIUzCFLFlcQ) — A brief extract from a recent Go Time episode _(3 minutes)_. 

Go Time Podcast     

Jobs  

[Sr. Software Engineer at Rumble Network Discovery (Remote)](https://boards.greenhouse.io/rumble/jobs/4135242004) — Rumble delivers amazing network discovery and asset inventory capabilities for modern enterprises. Learn more at[rumble.run](https://rumble.run). 
Rumble Network Discovery   

[Backend / API Engineer at Textile (Remote)](https://grnh.se/20a9234c4us) — Written primarily in Go, built on top of protocols like [Libp2p](https://libp2p.io/), [IPFS](https://ipfs.io/), & [Filecoin](https://filecoin.io/), and is deployed to Google Kubernetes Engine. You'll interact with layers throughout the stack and own responsibilities from R&D to implementation and production monitoring. 
Textile   

[Find a Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-golangweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 
Hired      

[When More Parallelism Doesn't Mean More Performance](https://convey.earth/conversation?id=44) — Can we make bubble sort faster by using multiple ‘workers’ (goroutines) to compare different array entries in parallel? Nope, that would be against the (Amdahl’s) law, but sometimes it’s the journey that’s the fun part. 

Stuart Scott   

▶[Go _Beyond_ Work](https://changelog.com/gotime/212) — No, this isn’t the title of some career self help book, but a chat between five Go developers who look at cool and interesting ways to use Go beyond traditional work projects including 3D modelling and game development. 

Go Time Podcast podcast  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60/tonix7iyofp8lhjw6hfi.jpg)](https://github.com/muesli/duf)  

[duf: Think `htop` but for Disk Usage](https://github.com/muesli/duf) — For Linux, BSD, and macOS and written in Go. A bolder alternative to `df`! 

Christian Muehlhaeuser   

[Compress: Optimized Compression Packages for Go](https://github.com/klauspost/compress) — Covers a variety of compression standards like zstandard, S2, gzip, and zip. 

Klaus Post   

[GoReleaser 1.3: Deliver Go Binaries As Fast and Easily As Possible](https://goreleaser.com/) — Built with CI tools in mind. [GitHub repo](https://github.com/goreleaser/goreleaser). 

Goreleaser   

[Remark42: Privacy-Focused Lightweight Commenting Engine](https://remark42.com/) — Want some privacy-friendly Go powered commenting with social login, moderation, and more? [GitHub repo](https://github.com/umputun/remark42). 

Umputun   

[Shortcut Puts the Agile in Agile and the “Can” in Kanban](https://shortcut.com/?utm_source=cooperGO&utm_medium=spon_nl&utm_campaign=prospecting&utm_content=kanban) 

Shortcut (formerly Clubhouse.io) sponsor   

[Flipt: A Self Hosted Feature Flag System](https://flipt.io/) — Add ‘feature flag’ support to your existing applications, with a simple, single UI and API. [GitHub repo](https://github.com/markphelps/flipt). 

Mark Phelps   

[go-github v42.0: A Go Client for the GitHub v3 API](https://github.com/google/go-github) — This is for the [REST API](https://docs.github.com/en/rest). For the v4 GraphQL API [consider this instead](https://github.com/shurcooL/githubv4). 

Google   

[Miller: A Go-Powered Textual Data File Swiss Army Knife](https://github.com/johnkerl/miller) — Boasts being like awk, sed, cut, join, and sort for data formats such as CSV, TSV, and JSON, and works at the data level rather than by demanding character positions to break data up. Think `jq` but for CSV, perhaps. 

John Kerl   

[govcl 2.2: A Cross-Platform Go GUI Library](https://github.com/ying32/govcl) — No HTML here, it uses the cross platform GUI library that [Lazarus](https://www.lazarus-ide.org/) (a Pascal IDE) does. 

不在乎y   

[TOML 1.0: TOML Parser for Go with Reflection](https://github.com/BurntSushi/toml) 
Andrew Gallant         

Curated by [Glenn Goodrich](https://twitter.com/ruprict) and [Peter Cooper](https://twitter.com/peterc). 

[Change your email address](https://golangweekly.com/edit_subscription/*|UID|*) or[Stop getting this newsletter](https://golangweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
