#328 — September 4, 2020 |
Golang Weekly |
GORM 2.0 Released: A 'Fantastic ORM' for Go — With version 2, GORM has been rewritten from scratch and boasts improved performance and modularity. It’s a huge upgrade (nested transactions, batch processing, dry runs, context support..) so updating existing GORM code may take a little work, but if you haven’t used it before, it’s well worth checking out. GitHub repo. Jinzhu |
An Update on the Proposal for Embedding Files in Go Binaries — While there are plenty of tools for embedding files in Go binaries already, the Go team has been discussing the potential of making it an official feature built into Russ Cox |
Remote Instructor-Led Go, Docker, Kubernetes, & Python Training — We offer live-streaming remote training sessions for individual engineers and companies that want to augment their knowledge in Go, Docker, Kubernetes, and Python. We’ve trained over 5,000 engineers via our carefully crafted classes. Ardan Labs sponsor |
Some Examples of Using Generics by the Go Team — The Go Team |
Even in Go, Concurrency Is Still Not Easy (With An Example) — Goroutines and channels are not all there is to concurrency and you can still make mistakes. Chris shows one such example to prove it’s still on the programmer to use the tools properly. Chris Siebenmann |
Go 1.15.1 and 1.14.8 Released — Two releases that fix a recently reported security issue when you don’t explicitly set a Content-Type in an HTTP handler (when using Filippo Valsorda et al. |
💻 Jobs |
Stream Provides APIs for Building Activity Feeds and Chat — Stream is looking for a full time Backend Software Engineer to join our development team. If you are interested in becoming a part of what we do, apply now. Stream |
Golang Developer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more. X-Team |
Find a Job Through Vettery — Create a profile on Vettery to connect with hiring managers at startups and Fortune 500 companies. It's free for job-seekers. Vettery |
📘 Tutorials |
Hugo Modules: Everything You Need to Know — Hugo, Go’s favorite static site generator, introduced a module system in 0.56.0. This allows you to mount any Hugo project and use some or all of its files. The New Dynamic |
Introducing Clean Architecture by Refactoring a Go Project — Three Dots Labs has a series of posts building a real microservices project in Go. This post starts a refactoring toward Clean Architecture, an idea around defining clear boundaries within a system. Miłosz Smółka |
An Introduction to the Go Client for Elasticsearch — If you’ve got a large amount of data you want to run full text search over, Elasticsearch has probably turned up on your radar. The official Go client now includes features such as retrying requests and discovering cluster nodes and this post digs into how it works. Karel Minarik |
Discovering Alloc Size Classes in Go — Go 1.15 changed the way bytes are allocated for an object, rounding up to the nearest “size class.” Read on to find out what that means. Josh Bleecher Snyder |
Bitmovin Live IBC Edition - Focused on Innovative Ways to Reduce Costs Bitmovin Inc. sponsor |
Turn a Go REST API to GraphQL using Hasura Actions — How to convert an existing REST API to GraphQL by just defining types and configuring endpoints. Gavin Ray |
🛠 Code & Tools |
Echelon: Hierarchical Progress Bars in Terminal on Overdrive — A cross-platform library (yes, even on Windows) to organize progress bars in a hierarchical structure and that can be used from multiple goroutines. Cirrus Labs |
Apache Pulsar Go Client Library — Apache Pulsar is a distributed messaging and streaming platform originally built at Yahoo, and it now has a pure-Go client library. The Apache Software Foundation |
Get Instant Insights into Golang App Performance with Distributed Tracing — Trace requests across service boundaries and optimize bottlenecks by drilling into individual traces end-to-end with flame graphs. Datadog APM sponsor |
gomplate: A Flexible CLI Tool for Template Rendering — A template renderer that supports a growing list of sources, such as: JSON, YAML, AWS EC2 metadata, BoltDB, Hashicorp Consul and Hashicorp Vault secrets. Worth looking at the examples here. Dave Henderson |
gookit/color: Terminal Color Rendering Tool Library — No dependencies. Supports rich color output at 16-color, 256-color, or even true color (24-bit, RGB) levels. Gookit |
db: A Productive Data Access Layer for Different Data Sources — db is ORM-‘like’ and provides an agnostic way to work with numerous databases like Postgres, SQLite, MySQL, MongoDB, and SQL Server. There’s a neat online tour stepping through how it works too. upper.io |
pgzip 1.2.5: Parallel Klaus Post |
Go Stripe: The Official Library for the Stripe API — For when you’re using Stripe for your billing. v72 is out now – they certainly like their releases at Stripe :-) Stripe |
Zap 1.16: Fast, Structured, Leveled Logging in Go Uber |
httpx 1.0: A Multi-Purpose HTTP Toolkit for Probing Servers — A command line tool, written in Go, for running numerous HTTP ‘probers’ at the same time using the retryablehttp library under the hood. Project Discovery |
🎲 Fun and Side Projects |
▶ A Music Video Coded with Go — It’s all text-based but a neat experiment all the same. Here’s the source code. ENAE |