Weekly Golang Newsletter

Insightful Articles, Tutorials, Projects, Videos, Tweets delivered in your inbox.

Join Thousands of Golang Programmers And Keep Your Programming Skills Updated.

Latest Issue

Worthy Read

Aimed at development teams who are building production Go applications intended for high scale deployment.

Last week, I was at dotGo, participating one of the finest Go conferences and catching up with gophers from the other side of the Atlantic. I gave a very short lightning talk about inspection of code generation with the tools alrady available in the toolchain. This post goes through the talk for those who didn’t have to priviledge to be at the conference. Slides are also available at go-talks.

Write behavioral tests in your editor. Get live results in your browser. Since GoConvey integrates with go test, you can keep running tests in the terminal or use the auto-updating web UI for test results.

Upload Files From Anywhere. The API for file uploads. Integrate Filestack in 2 lines of code.

Function is variadic if and only if the last parameter is of type …T (three dots before T are not there by accident). It allows to pass arbitrary (variable) number of arguments. They’re available inside function through elements of a slice (numbers parameter in code above).

Notes / Learnings from DotGoEU Conference.

Go doesn't support exception, instead, panic/recover is supported. Exception throw/catch and panic/recover are some similiar (in fact, equivalent, IMO), for example, the value stored in a panic can be retrieved by a recover calling, which can explained as the value thrown by a panic calling can be caught by a recover calling.

Reddit user @valyala 's shows us that preliminary Go1 benchmark results comparing go tip to go1.7 suggest that go1.8 will be faster.

Start a free trial of JIRA Service Desk and get a Konami Code shirt Free.

opensource project
Restic is a backup program that is fast, efficient and secure.

web frameworks
Note - As a newsletter curator I don't advocate public shaming. I am sharing this article because IRIS project has been making dubious claims for a while now.

Another review of the just concluded dotGo conference.

Reddit discussion with listing of Go Programming Youtube channels worth following.

opensource project
Chaos Monkey randomly terminates virtual machine instances and containers that run inside of your production environment. Exposing engineers to failures more frequently incentivizes them to build resilient services. Chaos Monkey is an example of a tool that follows the Principles of Chaos Engineering. In this post Netflix talks about their upgrade to Chaos Monkey.

Curious what the common approach to this is. It's tough sometimes to say or write "Go", especially when the audience or person isn't familiar with it. "golang" is easy because appending "lang" onto it is self-describing. But it feels odd always referring to Go as "golang". With that being said, the word "go" is obviously common. Curious to know when you use either. Or if you don't use one of them at all conversationally or in your publications.

go open source project
goa is a framework for building microservices in Go using a unique design-first approach. Instead of focusing solely on helping with implementation, goa makes it possible to describe the design of an API in an holistic way. goa then uses that description to provide specialized helper code to the implementation and to generate documentation, API clients, tests, even custom artifacts.

Go React is React bindings for Go with a set of supplementary components. And it is a very pleasant experience to write React applications in Go and have all the ReactJS components available via npm install. Note - The author mentions " it isn’t ready for production use yet".

Echo is micro framework for Go similar to something like Slim PHP or Lumen. This is an introductory tutorial.


sqalx - 62 Stars, 2 Fork
sqalx (pronounced 'scale-x') is a library built on top of sqlx that allows to seamlessly create nested transactions and to avoid thinking about whether or not a function is called within a transaction. With sqalx you can easily create reusable and composable functions that can be called within or out of transactions and that can create transactions themselves.

sjson - 51 Stars, 3 Fork
SJSON is a Go package the provides a very fast and simple way to set a value in a json document. The reason for this library it to provide efficient json updating for the SummitDB project. For quickly retrieving json values check out GJSON.

NyanLab - 9 Stars, 0 Fork
NyanLab is a simple web application that allows images to scroll seamlessly over multiple monitors and even multiple computers if they are networked together.

jsoned - 5 Stars, 0 Fork
jsoned is a command line utility that provides a fast and simple way to retrieve or update values from JSON documents. It uses GJSON and SJSON under the hood. It's fast because it avoids parsing irrelevant sections of json, skipping over values that do not apply, and aborts as soon as the target value has been found or updated.

libxml2json - 3 Stars, 0 Fork
A small GoLang Library to convert XML files to JSON files or convert XML data to JSON data.