5 open source Go tools for tuning up your Golang mastery
Love programming in Go? It’s hard not to fall in love with it, we know! Today we browsed through some Golang tools on GitHub and picked some of our favorites from the list. Far from exhaustive, this list highlights some of the best in show.
As 2018 came to a close, Indeed weighed in on the top 10 growing IT skills. One of our favorites, Golang, took a respectable position at number 4. The little gopher has found plenty of fans and it’s impressive to watch its progress grow on GitHub. Because of its popularity, there’s no shortage of open source tools.
Truthfully, it’s tough to pick favorites. (That’s why pick and mix exists!) Despite how hard it is to sort through the best, today we are highlighting five open source tools for Go that deserve your attention. This list is entirely subjective, and we hesitate to call them the best. Instead, these are just five tools that we want to highlight. Let’s take a look!
Enhance your workflow! Go Revive is a fast, configurable, extensible linter for Go. From revive.run: “Revive provides a framework for development of custom rules, and lets you define a strict preset for enhancing your development and code review processes.”
While golint is quite popular with users, Go Revive brings some differences to the table that make it worth your time. For example, it runs much faster (up to 6x!), allows for configuring the linting rules with a TOML file, and provides more rules.
More information about Go Revive available on GitHub, as well as on creator Minko Gechev’s blog. Gechev’s blog is a great springboard for seeing what Go Revive is about, as it explains his thought process and goes in depth. (It’s worth the mic drop at the end.)
Add this visualization tool to your belt! You can help visualize call graphs of a Go program with Go Callvis. This development tool has an interactive view using an HTTP server.
From the repo on GitHub: “The purpose of this tool is to provide developers with a visual overview of a Go program using data from call graph and its relations with packages and types. This is especially useful in larger projects where the complexity of the code [is] much higher or when you are just simply trying to understand code of somebody else.”
More information about Go Callvis available on GitHub.
Build powerful pipelines in any programming language (but especially in Go)! We should be all for automation, shouldn’t we? Gaia enables DevOps and helps you develop powerful pipelines. It also clones your code repo, compiles code to binary, and executes it on-demand.
One of the sleekest things about Gaia is its smooth user interface. It not only works great, it just plain looks great. Besides just boasting good looks, it also works quickly too with a core written in Go.
Still in alpha version, Gaia is not recommended for critical jobs yet. However, we have been keeping an eye on it since we visited it back in the summer of 2018 and our love is still going strong!
Browse the examples written in Go.
Automate your workflow! Or, at least automate the most common tasks. Realize is a Golang Task Runner that enhances your workflow through automation.
It boasts high performance Live Reload, custom extensions and paths, and allows for switching between different Go builds. Automate Go commands, define additional commands, and manage multiple projects at the same time.
Generate Go tests from your source code with this tool. It makes writing Go tests easier (and who doesn’t need that?).
From GitHub: “It’s a Golang commandline tool that generates table driven tests based on its target source files’ function and method signatures.” You have a host of different plugins to choose from including: Emacs, Vim, Atom Editor, Visual Studio Code, IntelliJ Goland, and the Sublime Text 3 plugin.
More information about Go tests available on GitHub.
Didn’t see your favorite on the list? It’s impossible to list all the great Golang tools. Please let us know in the comments what you would have picked and we will take a look at it.