---
title: "A quick Go quiz"
publication: "Go Weekly"
issue: 511
published_at: "2024-06-18"
canonical_url: "https://golangweekly.com/issues/511"
---

Plus debates about Go 1.23 iterators, anti-patterns, and another Go web framework. |        

#​511 — June 18, 2024 

[Unsub](https://golangweekly.com/leave/*|UID|*)|[Web Version](https://golangweekly.com/issues/511)  

Together with [![Dragonfly\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_1296,h_236/e_make_transparent/co_white,e_outline:17/s0zmgewhr5q9s8jl1gfd.png)](https://www.dragonflydb.io/start?utm_campaign=cooperpress_go_jun24&utm_source=cooper_press&utm_medium=email&utm_content=Go%20Weekly)  

Go Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zsbg2ieaj4qgps4eod46.jpg)](https://www.gingerbill.org/article/2024/06/17/go-iterator-design/)  

[Why People are 'Angry' Over Go 1.23 Iterators](https://www.gingerbill.org/article/2024/06/17/go-iterator-design/) — ‘Angry’ feels overstated to us, but there’s been a lot of _robust debate_ about Go’s [proposed new iterator helpers](https://github.com/golang/go/issues/61897) (see them in action [here](https://go.dev/wiki/RangefuncExperiment)) on social media this week (e.g. [Reddit](https://www.reddit.com/r/golang/comments/1dhxy1u/why_people_are_angry_over_go_123_iterators/)). There’s a broad mix of opinions, and the creator of the [Odin language](https://odin-lang.org/) chimes in with his thoughts, opining that Go should stay unapologetically imperative. 

Ginger Bill   

💡 Chris Siebenmann [chimes in too](https://utcc.utoronto.ca/~cks/space/blog/programming/GoIteratorsAndAvoidingMistakes), acknowledging the complexity of the problem, but how Go's solution has benefits in terms of reducing potential errors.  

[A Quiz on Advanced Concepts for Go Developers](https://us.idyllic.app/quiz/lg8s15ydtf-mastering-go-challenging-quiz-on-advanced-concepts-for-go-programmers) — Someone made a quiz on Go concepts if you’d like to test your chops. Twelve quick multiple choice questions await. 

martialdouble-t   [![\](https://copm.s3.amazonaws.com/347b033c.png)](https://www.dragonflydb.io/start?utm_campaign=cooperpress_go_jun24&utm_source=cooper_press&utm_medium=email&utm_content=Go%20Weekly) 

[Redis With Wings. Better Performance. Less Overhead](https://www.dragonflydb.io/start?utm_campaign=cooperpress_go_jun24&utm_source=cooper_press&utm_medium=email&utm_content=Go%20Weekly) — Dragonfly (24k GitHub stars) is a fully compatible drop-in Redis replacement. Dragonfly achieves 25X better performance than Redis and supports millions of QPS on a single instance. Download and deploy yourself or get a free trial of Dragonfly Cloud. 

Dragonfly sponsor   

[Putting Go's `context` Into Context](https://blog.meain.io/2024/golang-context/) — A romp through various types of context, from empty to WithDeadline, because _“the real beauty is on the inside”_, claims the author. 

Abin Simon   

[Common Anti-Patterns in Go Web Apps](https://threedots.tech/post/common-anti-patterns-in-go-web-applications/) — An interesting checklist to consider to ensure you don't slip into unhelpful patterns and, instead, write loosely coupled code that keeps everyone productive and happy. 

Miłosz Smółka   

📄 [Performance Benchmarking: gRPC + Protobuf vs. HTTP + JSON](https://packagemain.tech/p/protobuf-grpc-vs-json-http) Alex Pliutau 

📄 [Go is a _Platform_](https://eltonminetto.dev/en/post/2024-06-12-go-is-a-plataform/) – A gushing reminder of how everything that comes with Go out-of-the-box forms a comprehensive suite of evolving developer tools. Elton Minetto 

📄 [UUIDv7 Implemented in 20 Languages](https://antonz.org/uuidv7/) – Surprisingly short and sweet. Anton Zhiyanov  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/s3wmih0xkid31xkelp3h.jpg)](https://github.com/go-goyave/goyave/releases/tag/v5.0.0)  

[Goyave v5.0: Another REST-Based Go Web Framework](https://github.com/go-goyave/goyave/releases/tag/v5.0.0) — One of many players in this space, but one that's undergone a significant revamp over the past year. The emphasis is on providing an opinionated, defined structure and architecture for 'enterprise' tier apps. ([Official homepage.](https://goyave.dev/)) 

Jérémy LAMBERT   

[Dynamo 2.0: An Expressive Amazon DynamoDB Library](https://github.com/guregu/dynamo) — Integrates with the official AWS SDK but gives you a tidier abstraction. [v2.0](https://github.com/guregu/dynamo/releases/tag/v2.0.0) uses aws-sdk-go-v2 under the hood and while it maintains an almost identical API, there are a handful of small changes that may require you update your code. 

Greg Roseberry   

[Temporal for Startups](https://t.mp/3RntIiY) — Startups: Ship fast with Temporal. Guaranteed reliability. Code in your language. Get $2,400 free credits & expert advice to accelerate success. 

Temporal Technologies sponsor   

[Age 1.2: A Simple File Encryption Tool and Go Library](https://github.com/FiloSottile/age) — Boasts small explicit keys, no config options, and UNIX-style composability. 

Filippo Valsorda   

[tbls: A CI-Friendly Tool for Documenting Databases](https://github.com/k1LoW/tbls) — Document a database automatically in Markdown format with schemas rendered via DOT, PlantUML, Mermaid, or direct to images. By default you get documentation covering columns, indexes, relations, and other schema details (here’s [a sample](https://github.com/k1LoW/tbls/blob/main/sample/postgres/README.md)). 

Ken’ichiro Oyama   

[dblab: An Interactive Client for Postgres, MySQL, and SQLite3](https://github.com/danvergara/dblab) — A cross-platform (including Windows) TUI-style app for working with various database systems. Certainly looks rather different to typical CLI clients. 

Daniel Omar Vergara Pérez   

[jsondiff 0.6: JSON Diffing Library Based on RFC 6902 (JSON Patch)](https://github.com/wI2L/jsondiff) — [RFC 6902](https://tools.ietf.org/html/rfc6902) defines a JSON structure for expressing patching operations on other JSON documents. 

William Poussier   

- [TinyGo 0.32.0](https://github.com/tinygo-org/tinygo/releases/tag/v0.32.0) – The Go compiler for 'small places', like microcontrollers and WebAssembly. v0.32.0 supports LLVM 18, drops Go 1.18 support, and supports more new hardware.
- [validator 10.22](https://github.com/go-playground/validator) – Value validations for structs and fields based on tags.
- [Cloudflare Go 2.3](https://github.com/cloudflare/cloudflare-go) – Official library for the Cloudflare API.
- [NATS.go 1.36](https://github.com/nats-io/nats.go/releases/tag/v1.36.0) – Go client for the NATS messaging system.
- [dae 0.6](https://github.com/daeuniverse/dae) – High-perf transparent proxy based on eBPF.
- [Buf 1.33](https://github.com/bufbuild/buf/releases/tag/v1.33.0) – CLI tool for working with Protocol Buffers.
- [Pond 1.9](https://github.com/alitto/pond) – Minimalist goroutine worker pool.         

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

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

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