#293 — Decemeber 20, 2019 |
Golang Weekly |
Each year, we like to close things off with a look back at the most popular links of the year — handy if you don't read every issue and want a quick catch up too :-) We're going to be back on January 9 once the holiday season is over. Thank you for your continued support, we really appreciate it! |
🏆 The Top 5 Go Items of 2019 |
Go 1.14 Should Be Great — Amazingly, our most popular link this year was to a tweet by core team member Brad Fitzpatrick which linked to a few things being worked on for the forthcoming Go 1.14 (this presentation contains links to even more such items). The good news is that the first beta of Go 1.14 is now out, so you can get playing today. Brad Fitzpatrick |
An Overview of Go's Tooling — “Overview” seemed insufficient for this tome of how to use Go’s to do just about everything from linting to rewrite rules to stress testing. Bookmark this. Alex Edwards |
Production-Grade Redis — Better monitoring, seamless scaling, durable and portable Redis hosting supporting all the latest features. RedisGreen sponsor |
Practical Go: Real World Advice for Writing Maintainable Go Programs — The output of two sessions at QCon China where Dave worked through a list of advice from naming to concurrency resulting in a handbook for solid Go(ld) programming. Dave Cheney |
Go is on a Trajectory to Become the Next Enterprise Programming Language — It was quite the headline, but the author made some worthwhile points about many of Go’s characteristics that give it an advantage in building large-scale software projects. Kevin Goslar |
Yaegi: 'Yet Another Go Interpreter' — Containous, the company behind Traefik, built a Go interpreter to enable Go to be used for scripting within other apps, interactive shells, or for quick prototyping. You can use it as a REPL or embed it into your own apps. GitHub repo. Marc Vertes |
💻 Jobs |
Sr. Software Engineer at CrowdStrike (Remote) — CrowdStrike is the leader in cloud-delivered endpoint protection, which helps protect our customers from cybersecurity attacks. CrowdStrike |
Enjoy Building Scalable Infrastructure in Go? Stream Is Hiring — Like coding in Go? We do too. Stream is hiring in Amsterdam. Apply now. Stream |
Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers. Vettery |
📘 Top Articles & Tutorials of 2019 |
The Top 10 Most Common Mistakes I’ve Seen in Go Projects — One developer’s personal list of the most common mistakes he’s seen in Go projects, including problems with benchmarking and pointers, confusion using Teiva Harsanyi |
Using Go Modules — The first in a series on the official Go blog covering modules, as supported in Go 1.11 onwards, from their creation to adding, upgrading and removing dependencies. Since module mode is the default from Go 1.13 onward, this is ground worth covering ASAP. Tyler Bui-Palsulich and Eno Compton |
Why Are My Go Executable Files So Large? — To answer this question, Raphael wrote a D3 (a JavaScript visualization library) application and learned a lot about Go executables. This is a long and interesting read. Raphael ‘kena’ Poss |
Best Practices for Writing High-Performance Go Code Damian Gryski |
Reach Millions of Developers with One Integration Manifold sponsor |
Go’s 'Features of Last Resort' — A ‘feature of last resort’ is a language feature that solves an otherwise hard-to-solve problem but is best avoided if possible (think Martin Tournoij |
Quick Go Performance Improvements — These tips were constrained as “techniques you can use to significantly improve the performance of your program with little effort” which is how I want all my tips going forward. Stephen Whitworth |
🛠 Top Code & Tools of 2019 |
Go Micro 1.6: A Microservice Development Framework — Provides the core features you need for distributed systems development. The last few releases have improved the project’s use of Go modules. Micro Technologies |
Watermill 1.0: A Go Library for Working Efficiently with Message Streams — We first linked to its launch post in 2018, but this library for building event driven apps has come a long way since. Three Dots Labs |
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 |
AresDB: Uber’s Go and GPU-Powered Real-Time Analytics Engine — Uber built a pretty significant project using Go and CUDA which uses GPUs to enable real-time computation and data processing in parallel. GitHub repo. Jian Shen |
cli 2.0: A Fast Way to Build Go CLI Apps — A long standing library that sprang back into life this year. Here’s the v2 manual which shows off all the main features. Jeremy Saenz and Contributors |
Chroma: A Pure Go General Purpose Syntax Highlighter — Chroma brings most of the features of Pygments, pretty much the Python-based standard in the syntax highlighting field, to Go and can even use the lexers and styles already created for Pygments. Alec Thomas |
Tracerr: Go Errors with Stack Trace and Source Fragments — An interesting experiment in making Go error output more informative. More examples here. ztrue |