#298 — February 7, 2020 |
Golang Weekly |
▶ The State of Go 2020: Changes Since Go 1.12 — What’s happened to Go since Go 1.12 and what’s coming up for Go 1.14? Francesc Campoy and Maartje Eyskens took 25 minutes at last week’s FOSDEM event to bring us all up to speed. Hate videos? Here’s the slides which stand up well on their own. Francesc Campoy and Maartje Eyskens |
Do You Need Go, Docker or Kubernetes Training? — We offer on-site corporate training for engineers that want to learn Go, Docker and/or Kubernetes. Having trained over 5,000 engineers, we have carefully crafted these classes for students to get as much value as possible. Ardan Labs sponsor |
The Zen of Go: Ten Go Development Values — Ten different principles for writing maintainable Go from Dave Cheney’s GopherCon Israel presentation. Dave is well known for his principle-heavy talks and blog posts, and if you’re keen to watch one, 'Do not fear first class functions' from dotGo 2016 is worth it. Dave Cheney |
Why Discord Is Switching From Go to Rust — This is causing consternation, as you might imagine. Especially since the comparison is to Go 1.9.2 vs Rust nightly builds and principally comes down to garbage collection. Jesse Howarth |
Go 1.14 Release Candidate 1 Released — The announcement is here. There is a change to the language around allowing interfaces with overlapping method sets along with a number of other minor changes including that Goroutines are now asynchronously preemptible. Go |
Great news for TinyGo, an increasingly popular Go compiler for targeting 'small places' (such as microcontrollers and WebAssembly), with it becoming a Google sponsored project. Its future looks bright. |
💻 Jobs |
High-Growth Tech Startup in Luxembourg Hiring Senior Go Engineers — Do you like microservices? We do. We also like small data, beer and giant gorillas. Come join the Force. Tadaweb |
Golang Developer at X-Team (Remote) — Work with the world's leading brands, from anywhere. Travel the world while being part of the most energizing community of developers. X-Team |
Find a Dev Job Through Vettery — Vettery is completely free for job seekers. Make a profile, name your salary, and connect with hiring managers from top employers. Vettery |
📘 Articles & Tutorials |
Adopting Go Modules and Integrating with GitHub Actions — Four lessons learnt when migrating gokrb5 (a Kerberos library) to use modules for dependency management. Jonathan Turner |
How Are Loops in Go Translated to Assembly? — Most developers don’t need to dig down to this level, but it’s interesting to read about someone else’s findings. Vincent Blanchon |
Testing in Go: Golden Files — An approach to not hard coding expected test result values in your source code and instead using external ‘golden’ files. Ilija Eftimov |
Measure and Improve Go Code Performance With Blackfire.io — Profile in development, test/staging, and production. Visualize bottlenecks in an intuitive UI and find root causes. Blackfire.io sponsor |
▶ Advanced Debugging Techniques for Go Code — A talk from the recent FOSDEM event that covers a variety of Go related debugging tools and techniques. Andrii Soldatenko |
Continuous Profiling Go Applications Running in Kubernetes — This uses a cronjob and some annotations to collect pprof data from running pods and push them to a Profefe registry. Gianluca Arbezzano |
Running Go CLI Programs in the Browser — And if you want to make your own WASM-based Go playground, here you go! Martin Tournoij |
Star: A Look at a Python-esque Language That Can Call Go Library Functions — Builds upon Starlark in Go, an interpreter for Starlark, a dialect of Python intended for use as a configuration language. Max McDonnell |
🛠 Code & Tools |
httpretty: Pretty Prints The HTTP Requests You Make — Inspired by Henrique Vicente |
Fiber: An Express.js-Styled Web Framework for Go — Fiber is a basic HTTP service framework inspired by Node’s Express.js (which in turn was inspired by Ruby’s Sinatra) that’s actually aimed at making Node developer’s lives a bit easier when they move to Go. Being fast is a huge bonus too. Vic Shóstak |
The Ultimate Guide to Container Formats: Decrypting Video Technologies Bitmovin Inc. sponsor |
MongoDB Go Driver 1.3: The Official MongoDB Driver — Support for modules has been added (but it’s not mandatory) and there are new functions for working with BSON. MongoDB, Inc. |
Caire: A Content-Aware Image Resizing Library — Uses seam carving to stretch out unimportant parts of an image, allowing the resizing process to take an image’s content into account. Endre Simo |
FastHTTP 1.9: A Fast HTTP Implementation for Go — A long standing project that continues to get frequent updates and claims to be “up to 10x faster than net/http”. Aliaksandr Valialkin |
go-syslog 3.0: A 'Blazing Fast' Syslog Parser — v3.0, released yesterday, introduces initial RFC 3164 (BSD Syslog Protocol) support. InfluxData |
Fatih Arslan |