---
title: "The top Go links of 2017"
publication: "Go Weekly"
issue: 192
published_at: "2017-12-21"
canonical_url: "https://golangweekly.com/issues/192"
---

Golang Weekly 192   . 

[Read this on the Web](https://golangweekly.com/issues/192) 

[Golang Weekly](https://golangweekly.com) Issue 192 — December 21, 2017      

What a year it's been for Go! Both Go 1.8 and 1.9 were released, Go made it into the top 10 most popular languages on the TIOBE index, and Go's now the fastest growing language on GitHub. 2018 is looking very promising :-)
 
 In this final issue of the year, we're looking back at the most popular Go news and links of 2017. We hope you have a happy holiday season and we'll see you next on January 11, 2018 :-)
 
 _- The Golang Weekly Team (Peter, Chris, and Za'e)_ 

The Top Articles of 2017

[Go 1.9's Release Notes](https://golang.org/doc/go1.9) August 2017's Go 1.9 remains the most recent mainstream release of Go and included type aliases, parallel compilation, and GC speedups. golang.​org [Understand Go Pointers in Fewer Than 800 Words](https://dave.cheney.net/2017/04/26/understand-go-pointers-in-less-than-800-words-or-your-money-back) One of Go’s most active contributors explains pointers from the ground up, complete with diagrams. Dave Cheney [The Ultimate Guide to Writing a Go Tool](https://arslan.io/2017/09/14/the-ultimate-guide-to-writing-a-go-tool/) A very thorough tutorial for building a tool to add tags to struct fields via command line or within an editor. Fatih Arslan [See What Your Program Is Really Doing With 'go tool trace'](https://making.pusher.com/go-tool-trace/) If you haven’t used it yet, this is a good look at a handy Go tool for monitoring your program’s usage of goroutines, memory, threads, and more. Will Sewell [Holiday Code Freeze? - 7 Things to Do Instead of Deploying](https://circleci.com/blog/don-t-let-code-freeze-leave-you-out-in-the-cold/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=december&utm_content=go-newsletter) Around this time of year, many companies institute a “code freeze” that puts a stop to new deploys for a certain period of time... CircleCIsponsored[![\](https://copm.s3.amazonaws.com/ab6cd6d4.png)](https://circleci.com/blog/don-t-let-code-freeze-leave-you-out-in-the-cold/?utm_source=cooperpress&utm_medium=newsletter&utm_campaign=december&utm_content=go-newsletter) [How to Ship Production-Grade Go](https://www.oreilly.com/ideas/how-to-ship-production-grade-go) A look at several things you can do to make your code more robust, debuggable, and ready for production. Kavya Joshi [Understanding Tensorflow Using Go](https://pgaleone.eu/tensorflow/go/2017/05/29/understanding-tensorflow-using-go/) An error-driven approach to learning the Tensorflow architecture and what is possible with the Go binding. (Tensorflow is a popular machine learning library.) Paolo Galeone [Error Handling Patterns for Go Developers](https://mijailovic.net/2017/05/09/error-handling-patterns-in-go/) Some patterns around the proper use of `defer`, how to wrap error checks to avoid duplication, and adding context to your errors. Nemanja Mijailovic [Using Code Generation to Survive Without Generics](https://www.calhoun.io/using-code-generation-to-survive-without-generics-in-go/) Learn how to use code generation to create type-safe code (like a Queue or LinkedList) without having to rewrite the same thing over and over again. Jon Calhoun [A Theory of Modern Go](http://peter.bourgon.org/blog/2017/06/09/theory-of-modern-go.html) A case for dependency injection over of global variables and init() functions. Peter Bourgon 

Jobs

[Decred Is Where Blockchain Meets Golang...](https://decred.org/recruiting/) And we want you to help us build the future of cryptocurrency. If you like working on cutting edge tech ping us now. Decred [Looking for a Job at a Company That Prioritizes Go?](https://www.vettery.com/?utm_medium=cooper-golangweekly&utm_campaign=ad-1304&utm_source=newsletter&utm_content=grouped&utm_term=tech) Try Vettery and we’ll connect you directly with thousands of companies looking for talented back-end devs. Vettery 

Tools and Code

[Go Play Space: An Experimental Go Playground](https://goplay.space/) tools An experimental alternative to the [Go Playground](https://play.golang.org/) that includes highlighting, themes, and keyboard shortcuts. Igor Afanasyev [Goggles: A GUI For Your GOPATH](https://github.com/KyleBanks/goggles) tools Kyle Banks [A List of Top Go Frameworks, IDEs and Tools](https://medium.com/@quintinglvr/golang-guide-a-list-of-top-golang-frameworks-ides-tools-e7c7866e96c9) tools A quick review of some of the best web frameworks and tools in the Go landscape. Quintin Gulliver [Monitoring and Distributed Tracing for Go Apps](https://www.datadoghq.com/monitor-go/?utm_source=Advertisement&utm_medium=CooperPress&utm_campaign=CooperPress-GoWeeklyS) tools Track app performance and infrastructure metrics alongside request traces from all your apps and services. Datadogsponsored [When: A Natural Language Date/Time Parser](https://github.com/olebedev/when) code For example, you can pass in things like ‘next Wednesday at 4:20pm’ or ‘Saturday afternoon’ to process. Oleg Lebedev [Hermes: Responsive HTML Email Generation from Go](https://github.com/matcornic/hermes) code A Go port of Node’s [mailgen](https://github.com/eladnava/mailgen). Mathieu Cornic [Config: A Simple Configuration Library](https://github.com/joshbetz/config) code Caches values, parses env variables, JSON files, and reloads automatically on SIGHUP. Josh Betz [A Source Code Editor Written in Pure Go](https://github.com/jmigpin/editor) code Jorge Pinto [Pixel: A 2D Game Development Library](https://github.com/faiface/pixel) code Focused on fast 2D graphics rendering and has a simple API. Michal Štrba [Best Practices for Architecting Highly Monitorable Applications](https://www.vividcortex.com/resources/architecting-highly-monitorable-apps?utm_campaign=Go%20Newsletter&utm_source=ppc&utm_medium=Best%20Practices) Is your application easy to monitor in production? Many applications are, but sadly, some are designed with observability as an afterthought. VividCortexsponsored [Jennifer: A Code Generator for Go](https://github.com/dave/jennifer) code Ideal for programmatic Go code generation from Go itself. Dave Brophy [Pgx: A Pure Go Postgres Client Library](https://github.com/jackc/pgx) code Supports additional features beyond what’s available via `database/sql`. Jack Christensen [Colly: Fast and Elegant Scraping Framework for Go](https://github.com/gocolly/colly) code Colly     

Golang Weekly is curated by [Peter Cooper](https://twitter.com/peterc) and [Glenn Goodrich](https://twitter.com/ruprict) [Read this issue on the Web](https://golangweekly.com/issues/192) [See our archives](https://golangweekly.com/issues) [Change your email address](*|UPDATE_PROFILE|*)  [Stop getting this newsletter](*|UNSUB|*)  

Published by [Cooperpress](https://cooperpress.com/)
Fairfield Enterprise Centre, Lincoln Way, Louth, LN11 0LS, UK
