Tag: go

Using Mongo’s ObjectIDs with Go-Graphql

I’ve been working on building a Graphql API in Go and recently ran into an issue serializing Mongo’s ObjectIDs. This doesn’t sound like a difficult task, and thankfully it’s not, but it wasn’t super obvious how to go about this. First, we need to identify what an object ID really is. In the official Mongo… Read more »

Go’s Athens Project

I recently got back from Gophercon in San Diego and am still excited about the talk on the Athens Project. For those unaware, the Athens Project is a module proxy for Go! It’s currently in beta, but showing a ton of promise already. Go’s dependency management has changed a lot over the past few years…. Read more »

Testing a Cobra CLI in Go

Go has a fantastic library for writing CLI’s (Command Line Interfaces) called Cobra. I’ve been working on a CLI named Deckard for a few months now. Being new to Go, I had (lazily) shied away from writing tests. However, after thinking about my test plan and doing a little refactoring, I’ve found a great way… Read more »

How Golang Interfaces Work

Interfaces are a tool that allows you to define the behavior of objects and in Golang, interfaces are no different (except that they work on structs instead of “objects”). However, Go has some strange features for interfaces that users from other languages might not expect. Let’s take it slow and start by defining an interface… Read more »

Golang: What is a receiver function?

Classes aren’t really a thing in go, so you cant have instance methods (like Java or similar), however, you may have noticed some functions in Go that appear to be instance methods. These are Go’s receiver functions. The way they work is quite simple. If you have a struct like so: You could write a… Read more »

Prompt the user for a rune at the terminal in Go

I’ve been spending a lot of my spare time working on a Go project called Deckard. It’s a command line interface (or CLI) for handling database schema changes. Recently, I found myself wanting to prompt the user for a rune before running a command in that CLI. Why would I do this? Deckard handles schema… Read more »

5 Programming Languages You Should Really Try

For some strange reason, the vast majority of my blog readers are Python Developers. I wrote two articles on Python a long time ago and honestly try to avoid python when I can. So here’s an article for you purveyors of Python — you sultans of snakes. Note: This article is still likely relevant even… Read more »