#515 — July 16, 2024 |
|
Go Weekly |
Quartz: A Deterministic Time Testing Library — A new mocking library designed for testing code that relies on time, by introducing a little determinism and control to proceedings.. GitHub repo. Spike Curtis |
Go Range Iterators Demystified — In Go 1.22 (behind a flag) or 1.23 (currently in the release candidate stage), you can use the Zach Musgrave |
WorkOS: The Modern Identity Platform for B2B SaaS — Start selling to enterprise customers with just a few lines of code. WorkOS provides flexible, easy-to-use APIs to integrate SSO, SCIM, and RBAC in minutes. It's used by hundreds of high-growth startups including Perplexity, Vercel, Drata, & Webflow. WorkOS sponsor |
Building a Binary Search Tree with SIMD and Go's Assembler — When you want a little more performance than Go provides naturally, or access to underlying CPU features unavailable in Go, leaning on assembly language is one way to do it. Clément shows a practical example here. Clément Jean |
⚠️ Note that the tutorial above assumes knowledge of Go's assembler and doesn’t walk through the build process. I’ve put together the pieces of Clément’s code into a single GitHub Gist to make it easier to reproduce for yourself, though. |
IN BRIEF:
|
▶ Give Your Go App 'Superpowers' with an Embedded NATS Server — NATS is a lightweight real-time client/server messaging system, but a cool feature of NATS is you can embed it directly into a Go app and take advantage of its features without relying on a separate server. Synadio |
Profiling in Go: A Practical Guide — Pinpoint performance bottlenecks in your apps by profiling their activity and optimizing things based on the results. Noam Yadgar |
Kafka Is Dead, Long Live Kafka — Kafka is polarizing, yet ubiquitous. What if you could run Kafka as a single, stateless Go binary and reduce your costs? WarpStream sponsor |
📄 Mastering SOLID Principles with Go Examples Alex Pliutau 📄 Docker Best Practices: Choosing Between 📄 Demystifying Go Strings Andrei Boar |
🛠 Code & Tools |
Fyne 2.5: GUI App Framework for Desktop, Mobile and Web — Fyne isn’t a new project, but it’s been years since we featured it, and it’s a pretty neat way to build GUI and mobile apps with Go. v2.5 is a big release with support for Wayland as well as internationalization. It requires Go 1.19+. GitHub repo. Fyne Team |
💡 In Writing GUI apps doesn't have to be painful, Nikola Ubavić explains how he considered numerous languages and GUI app development approaches before settling on Go and Fyne (above). |
Minigrad: Andrej Karpathy's Micrograd in Go — A neural network library using an autograd approach. It’s essentially Andrej Karpathy’s (previously of OpenAI) Micrograd implementation in Go, rather than Python. Jeet |
|
Build Tools for Go — If the out-of-the-box build tools aren’t getting it done, here’s list of open source build tools to consider, including Mage and Taskfile. Inkmi |
Chiko: An Elegant gRPC TUI Client — Uses the popular tview terminal UI widget library to offer a way to interact with gRPC services. felangga |
timediff: Produce Human Readable, Relative Time Differences — For example: MergeStat |
|