For a while now I’ve been using Atom as my go to text editor when building stuff for the web. While Apple have the expression “There’s an App for that”, the same could almost be said for Atom in regards to plugins. At my new workplace we are using Golang for some of the back end services and of course there is a plugin for that! The Go Plus plugin provides everything you need to be effective when writing Go in the Atom Editor.
Goroutines, what are they exactly? According to the documentation they are a way to work with concurrency which basically means to execute functions at the same time. They’re called goroutines because the existing terms—threads, coroutines, processes, and so on—convey inaccurate connotations. A goroutine has a simple model: it is a function executing concurrently with other goroutines in the same address space. Unlike threads they are simpler to use and more memory efficent.
I’ve been building a side project with a friend and I thought that I would take the time to write down how we built the back-end for it. Currently, we’re using golang (or Go for short) consuming APIs as well as providing an API. This post will mainly consist of how we did the later part. To build this API we used web framework called Revel that, not so different from Ruby on Rails and ExpressJS, provides a MVC pattern for building web based applications on.