1. 程式人生 > >Golang Guide: A List of Top Golang Frameworks, IDEs & Tools

Golang Guide: A List of Top Golang Frameworks, IDEs & Tools

Golang Guide: A List of Top Golang Frameworks, IDEs & Tools

Since its introduction, Google’s Go Programming Language (Golang) has been experiencing an increasing popularity among mainstream users. In a December 2016 survey, 89% of the 3,595 respondents claimed that they program in Go at work or outside of work.

Additionally, Go ranks highest among the programming languages in terms of expertise and preference. This July 2017, Go ranks 10th in Tiobe’s Programming Language of the Year, jumping from its 55th ranking last year.

Clearly, Go is attracting many programmers from various disciplines and software development outsourcing

professionals. And it’s safe to say that this is due to the ease of using Go.

As a compiled, open-source programming language, Go makes it easy for developers to build simple, reliable, and efficient software. It is the product of the innovation and evolution of the more conservative languages such as C and C++.

With Go, the amount of code typing is reduced and writing robust APIs without sacrificing its performance has become easier. Designed for scalability and concurrency, Go makes optimizations possible. A compiler can perform all the code inspection work before runtime.

We’ve compiled a list of the top frameworks, IDEs, and tools for Golang for your quick reference. Bookmark it on your browser so that you can come back whenever you’re working with Go!

Frameworks for Golang

Web frameworks help developers build applications as easily and quickly as possible. Go is still relatively new, so it’s important to use frameworks with sufficient documentation.

Here are 9 frameworks you can use to help you build projects using the Go Language.

1. Revel

As a high productivity framework for Go, Revel includes a Hot Code Reload tool that lets you rebuild your project on every file change. It also includes a wide variety of comprehensive and high-performance features, so you don’t need to find external libraries to integrate into the framework.

2. Beego

Beego is a full-fledged MVC framework with its own logging library, ORM, and web frameworks. You don’t need to find and install third-party libraries. It features a built-in tool called Bee Tool that watches out for code changes and runs tasks when changes are detected.

Beego will save you a lot of hours, especially in the beginning of a project when you’re figuring out the logging framework or application structure.

3. Martini

Inspired by Sinatra, Martini is an extremely light but powerful framework. It was developed for writing modular web applications and services in Golang.

It features a non-intrusive design that’s quick and easy to use and includes a wide range of handlers and middleware. It’s capable of performing basic routing, exception handling, and default document serving for AngularJS apps in HTML5 mode.

Martini’s best feature is its use of reflection, which lets developers dynamically insert data into the handler functions and add new services. Martini is also fully compatible with the http.HandlerFunc interface. The downside, though, is that the Martini framework is no longer maintained.

4. Gin Gonic

Gin Gonic is a web framework with a martini-like API, but with much better performance. If you’ve used Martini before, then you’ll be familiar with Gin Gonic. Otherwise, it will only take you 10 minutes to learn Gin. It’s that easy!

Gin Gonic is a minimalistic framework that includes only the most essential libraries and features. This makes it perfect for developing high-performance REST APIs. Plus, it’s 40 times faster than Martini.

You can add middleware, nested groups, JSON validation, and rendering, but it still maintains its optimum performance. Gin Gonic uses httprouter, the fastest HTTP router for Go.

5. Buffalo

Building new web applications with Go is quick and simple with Buffalo. When you’re starting a new project, Buffalo already has everything setup for you — from front-end to back-end development.

It features Hot Reloading, which means that dev command will watch your .go and .html files automatically. It will then rebuild and restart your binary for you. Just run the dev command, and you’ll see the changes go live right before your eyes!

Buffalo is more than just a framework — it’s a holistic web development eco-system that lets you get straight to building your application.

6. Goji

Goji is a lightweight and fast web framework that has composability and simplicity as its main priority. Much like net/http.ServeMux, Goji is a minimalistic HTTP request multiplexer. It includes Einhorn support, which makes it possible for you to have websocket support in Goji.

Additional features include URL patterns, re-configurable middleware stack, graceful shutdown, and more. Goji can be used in production and has served billions of requests across several organizations.

7. Tiger Tonic

Inspired by Dropwizard, Tiger Tonic is a Go framework for developing JSON web services and building high-performance REST APIs. To stay true to the principles of Golang, Tiger Tonic strives to keep features orthogonal.

The downside to Tiger Tonic is its inadequacy when it comes to building large, back-end applications.

8. Gocraft

Another powerful yet minimalistic framework, Gocraft offers fast and scalable routing performance. It adds routing to the net/http package from the standard library.

Gocraft is a Go mux and middleware package that features casting and reflection capabilities so that you can type your code statically. You can also add an optional functionality with the built-in middleware or write your own.

Since performance is always one of the top concerns for developers, Gocraft is a great choice for developers. It’s very easy to write backend web applications using the Gocraft framework.

9. Mango

Although Mango is not actively maintained by its creator, Paul Bellamy, a lot of Go users still use it. The great thing about Mango is its modularity. You can choose from a variety of libraries to include in your project.

Mango lets you build reusable modules of HTTP functionality as quickly and easily as possible. It compiles a list of middleware and application into a single http server object to keep your code self-contained.

相關推薦

Golang Guide: A List of Top Golang Frameworks, IDEs & Tools

Golang Guide: A List of Top Golang Frameworks, IDEs & ToolsSince its introduction, Google’s Go Programming Language (Golang) has been experiencing an i

Codeforces Round #432 (Div. 2) D. Arpa and a list of numbers(暴力)

esp for int ans logs and codeforce style inf 枚舉質數,判斷是否超過臨界值。臨界值就是將不是因子中不含這個素數的數的個數乘以x和y的較小值,是否小於當前最小值。 #include <algorithm> #inclu

pycharm運行Pytest警告:passing a string to pytest.main() is deprecated, pass a list of arguments instead.

9.png 需要 pass nts nbsp ssi ring 分享 dep 初學pytest. 將pytest寫進Python代碼中 不同運行方式都可正常運行 =======================**********************=

D. Arpa and a list of numbers Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017)

bsp tdi ble mat sum i++ amp ext com http://codeforces.com/contest/851/problem/D 分區間操作 1 #include <cstdio> 2 #include <cstdl

codeforces 851D Arpa and a list of numbers

math 質因數 space 可能 ces 很多 pre mes arpa 目錄 codeforces 851D Arpa and a list of numbers 題意 題解 Code codeforces 851D Arpa and a list of numbe

Codeforces851D Arpa and a list of numbers(素數篩)

/* 素數篩 有n個數,可以進行兩種操作: 1,刪除一個數,花費x 2,某個數的值+1,花費y 現在想讓序列所有數的gcd>1,求最小花費。(全部刪除也合法) 列舉數列中所有的素數i,如果某個數a[j]不是i的倍數, 將其刪除花費為v1=x,增加到是i倍數花費為v2=(i-a[j]

How to sort a list of Strings or Integers in Java

要排序ArrayList你可以用 Collections.sort() 這個static方法 例: import java.util.*; public class Jtest { public static void main(String[] args) { //初始化ArrayList ArrayLi

[React] Return a list of elements from a functional component in React

We sometimes just want to return a couple of elements next to one another from a React functional component, without adding a wrapper component which only

Proxmox VE登陸的時候提示沒有有效的訂閱You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options.

div lis pro == 備份 idg com list info 問題描述: 用的是免費版的,所以每次都提示這個沒有有效的訂閱挺煩的 解決方法: 修改文件/usr/share/javascript/proxmox-widget-toolkit/proxmoxli

A Top List of the Most Popular eCommerce Marketplace Builders

It is really amazing how digital commerce has evolved over the past years. E-commerce has moved from mere digital wallets and A.I. (Artificial Intelli

A Complete Guide to Usage of ‘usermod’ command– 15 Practical Examples with Screenshots

check point pen should password basic specific define config https://www.tecmint.com/usermod-command-examples/ ------------------------

Django URLs error: view must be a callable or a list/tuple in the case of include()

mean see ews patch port code eve con pattern Django 1.10 no longer allows you to specify views as a string (e.g. ‘myapp.views.home‘) in y

TypeError: Value passed to parameter 'a' has DataType int64 not in list of allowed values: float16,

是我 TP 是把 sdn 數據類型 data https http list 這是我在做多元線性回歸時遇到的錯誤:這個也是數據類型類的錯誤; 解決辦法就是把數據的類型轉化之後就行的了,於‘TypeError: Input ‘b‘ of ‘MatMul‘ Op has typ

Golang報錯mixture of field:value and value initializers

Golang 在使用匿名成員初始化時,如果出現 mixture of field:value and value initializers是因為初始化的方式不對,見程式碼: package main import ( "fmt" ) type Person struct { Na

pyspark 用fit訓練資料集的時候出現"Params must be either a param map or a list/tuple of param maps, "

在anaconda用決策樹訓練資料, from pyspark.ml.classification import DecisionTreeClassifier dt=DecisionTreeClassifier(labelCol="label",features

Create a Slack bot with golang GopherAcademy

Create a Slack bot with golang Introduction In this post we’ll look at how to set up a quick Slack bot that receives m

Pros and Cons: Golang in a Monorepo @ Alex Pliutau's Blog

Monorepo - is a monolithic code repository which can contain different services (or whatever you want to call them), CLI, libraries, etc. Di

Creating a RESTful API With Golang

In this article, I’m going to be showing you how we can create a simple Golang based REST API that serves up a JSON based response whenever it is h

Writing A Twitter Bot in Golang

In this tutorial I’m going to be demonstrating how to build a twitter bot using go-twitter, a popular Go client library for the Twitter API. I’ll

Golang send a chunked HTTP response

  package main import ( "fmt" "log" "net/http" "time" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request)