Go语言常见的框架都有哪些?新手该怎么选择框架学习?

1,451 阅读2分钟

对于很多初学Go语言或者从其他语言转go的同学好像都会遇到一个问题: 该怎么选择框架学习?

1、什么是框架

对于有其它语言开发经验的来说对框架并不陌生,框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实力间交互的方法,框架是可被应用开发者定制的应用骨架。

简单理解:框架就相当于建房子时,应用梁、柱子、承重墙等做起来的钢筋混凝土结构框架,是一种半成品,里面的功能可以根据自己的需求来实现。

使用框架在于在开发中减轻日常开发中的管理成本,减少代码的重复使用,开发变得简单、高效。

2、Go语言怎么选框架

初识go语言里面的框架,你会感觉你用的不是一个框架,好像是一个包,不需要拉一堆代码到本地,也不需要在固定的 文件结构里面写代码。

对,就是像一个包。

go语言里大部分框架都是这样,使用时都是像一个包一样,不会约束你的文件结构,你想怎么建文件结构就怎么建。

go语言常见的web框架大致可以分为两个流派:

  • 一个是大而全的,如Beego、Revel等;

这类框架的特点是按MVC的方式去构建,如果要开发单体服务,或者需要渲染页面的服务,是比较好的选择;

  • 另一个是小而美的,如Gin等;

这类不太像框架的框架,也可以说他是一个包,这类框架非常适合去开发纯API的服务。

最后推荐几款常用的框架以及个人感受:

  • Beego:一个Go语言开源的,高性能的MVC框架,功能齐全,但是在orm和route上限制比较大。 规模比较小的站点足够使用,适合从其他语言转过来的开发者(有mvc开发经验)入门。
  • Gin: 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。简单灵活,个人开发api的首选。
  • Iris: 目前发展最快的Go Web框架。提供完整的MVC功能并且面向未来。
  • Echo: 一个高性能,可扩展,轻量级的web框架。

在日常开发中如何选择一款适合的框架,首先要考虑当前所处的技术环境是怎样的,如果你所处的技术环境还在单体服务,那就选择大而全的框架,如果你的技术环境已经开始往微服务发展了,最好是选择小而美的框架。

本文正在参加技术专题18期-聊聊Go语言框架