对于有其它语言开发经验的来说对框架并不陌生,框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实力间交互的方法,框架是可被应用开发者定制的应用骨架。
简单理解:框架就相当于建房子时,应用梁、柱子、承重墙等做起来的钢筋混凝土结构框架,是一种半成品,里面的功能可以根据自己的需求来实现。
go语言里大部分框架都是这样,使用时都是像一个包一样,不会约束你的文件结构,你想怎么建文件结构就怎么建。
go语言常见的web框架大致可以分为两个流派:
- 一个是大而全的,如Beego、Revel等;
这类框架的特点是按MVC的方式去构建,如果要开发单体服务,或者需要渲染页面的服务,是比较好的选择;
- 另一个是小而美的,如Gin等;
在日常开发中如何选择一款适合的框架,首先要考虑当前所处的技术环境是怎样的,如果你所处的技术环境还在单体服务,那就选择大而全的框架,如果你的技术环境已经开始往微服务发展了,最好是选择小而美的框架。
推荐几款常用的框架以及个人感受:
- Beego:一个Go语言开源的,高性能的MVC框架,功能齐全,但是在orm和route上限制比较大。 规模比较小的站点足够使用,适合从其他语言转过来的开发者(有mvc开发经验)入门。
- Gin: 一个Go语言写的HTTP Web框架。它提供了Martini风格的API并有更好的性能。简单灵活,个人开发api的首选。