Photo by Florian Olivo on Unsplash

Backend Development with Go Part 1

Jonathan Reeves
4 min readSep 20, 2021

--

Hello, I am new to the Go programming language. I typically write my fullstack applications using JavaScript/TypeScript with React and Node. I wanted to try branching out to see what other backend languages were out there and whether or not I would like working with some of them.

I have read posts regarding how fun Go is to program in. I decided to give it a chance. For those of you reading this that are Rust developers saying or thinking to yourselves, “Why didn’t he try Rust?” I did. I don’t like Rust’s syntax. It reminds me too much of C++ which, although a great language in it’s own right is not the language for me. I don’t like how C++ looks. If I am going to stare at code all day it should be code that I actually like looking at and unfortunately Rust and C++ don’t fit this bill. For the Java developers out there saying “Java and Spring/Spring Boot is a great choice. Why not use Java?” Been there and done that. Not the biggest fan of Java either.

I am not here to say that Go is the end all be all language. Everyone should stop writing in whatever language they are currently and pick up Go. I am saying after my attempts of trying out Microservice development with Java and Spring Boot. Creating a couple of Mobile applications with Kotlin. And writing a simple Flappy Bird clone in Rust. I am choosing to see what Go offers vs what I already know is fun to use for backend development and I have been using for years now. JavaScript with Node.js and GraphQL.

I set out to learn the Go language first and foremost. Without the basic syntax you can’t really create anything of use. I mean you could but it might take you years before you stop writing a ton of bugs and have to go look up how a particular library is looking for your data to be handled. I used a several things from books to YouTube to even a small course on the Go basics. From there I went and took the Hackerrank test on Go I(Basics). I was able to complete the test and score high enough to pass on my first try. I was having a lot of fun learning the basics of Go. Something I hadn’t done with a programming language since JavaScript.

I then decided I was going to create a backend for a fullstack application that I am working on. The application has a React frontend that already have built. I will only need to change the axios request to the newly created Go backend. I have a backend created already using Node and MongoDB but I want to see how Go handles the same things so what better way to learn the ins and outs of the language than to rewrite an existing backend with the new one? Plus I know how long it takes to come up with a good idea sometimes and I didn’t want to spend countless hours or days trying to figure out the best idea for a backend service to practice on. I decided I would just rewrite an existing one and see if I could do it.

#The Start of Creating Your Backend with Go

The beginning of this journey has led me to here. Writing about what I am experiencing and giving you an insight into what I went through just in case you were thinking of doing it yourself. Now I have majority of what I need mapped out in a Kanban board. I used Trello for this. It was the easiest way for me to break up the tasks into smaller feature tasks that would allow me to focus on getting them out quickly. I am a fan of TDD so I am also going to try to write this application from a TDD standpoint. This will become a monthly dev log as I know I won’t be finished with it any time soon. I am still learning how to use Go as well as the web frameworks that it has going for it. I look forward to sharing my progress with you and I hope that it helps any of you out there thinking of switching either to Go or from one language to another. I believe rewriting an application that you have already developed in a new language and framework will help you realize whether or not you want to keep using this new framework or language or gain a better appreciation for the language or framework you are currently using.

#Conclusion

That’s it for now. Stay tuned in the upcoming months to see the progress that I have made on this project. I will be writing several parts to this as follow ups to document the process as mentioned earlier. Thanks for reading.

--

--

Jonathan Reeves

I am a software engineer that is currently trying to break into the DevOps world using Python. Professionally I use JavaScript with React to build websites.