I’ve always wanted to learn Go — the programming language developed by Google. Few years passed, still didn’t really find time to actually learn it.
I think the best way to learn Go is by doing a project using this programming language. So I’ve looked around and try to find some interesting projects. And here is the list I’ve found might be worth checking:
5 Interesting Projects:1. Kubernetes: an open-source container orchestration system2. Gogs: a slef-hosted Git service3. Syncthing: a continuous file synchronization program4. Revel: A high productivity, full-stack web framework5. Limetext: alternative to the text editor Sublime Text
Kubernetes
Kubernetes, also called k8s, is an open-source system for automating deployment, scaling, and management of containerized applications.
There is a good introduction about Kubernetes: Kubernetes 101: Pods, Nodes, Containers, and Clusters. It’s a 6-minute read article. If you’re new to the world of containers and web infrastructure, it might be useful.
I think this project is too complicated for a Go beginner to contribute. However, it’s nice to know such useful and meaningful project is developed in Go language. And if you happened to need to deploy and manage software in the cloud, Kubernetes is fit for this purpose. Back to Index.
Gogs
I like this project a lot. Using github.com very often. Sometimes I was wondering is it possible for me to host a similar service locally? I’m glad this project solved the problem for me.
The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. With Go, this can be done with an independent binary distribution across ALL platforms that Go supports, including Linux, Mac OS X, Windows and ARM. — What is Gogs
If you wanted to host your own git server, you could give it a try here.
Demo: https://try.gogs.io/user/login
Syncthing
This program helps you to synchronizes files between two or more computers. There are a lot similar services provided by Tech companies. However, there are private issues using such services from them. If you’d like to do it by yourself, Syncthing probably is for you. Here is the link to get you started.
If you’re still confused what is syncthing, simply put, it is similar to Dropbox. But it’s for personal usage, no data stored in the cloud.
Revel
Want to create a website and using Go ? Revel might be for you.
Revel is designed for small teams or startups because it’s pre-configured and easy to set-up or even no set-up at all. Here is a quick introduction to create a new Revel app from the Revel official website.
I’ve also found several other web frameworks written in Go. If you’re curious, here is the list of all the web frameworks. TL;DR: gin is the most popular one. If I want to have a simple web server, I probably will go for Revel. If API server, I might choose gin based on the performance of gin.
Limetext
What is Limetext? The creator of this project said it the best:
I love the Sublime Text editor. I have created several plugins to make it even better. One thing that scares me though is that it is not open sourced and the pace of nightly releases have recently been anything but nightly, even now that version 3 is out in Beta.
As none of the other text editors I’ve tried come close to the love I had for Sublime Text, I decided I had to create my own.
— @quarnster
Sadly, this project was abandoned for the past 2 years. However, the reason I still picked this project up is that it’s the proof of Go language not only could be used for the back-end project. It’s still fine to use it to develop a front-end software.
Here is the github page of this project. Maybe in the future, someone would revive this project and continue the development.
Hope you find this article inspiring.
Happy coding!