资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

go语言web框架选型 golang 框架选择

Go语言做Web应用开发的框架,哪一个更适合入门

可以先直接使用go自带的http server 框架,这个框架涵盖了绝大多数的功能,比如request response 的基本封装,简单的路由管理,文件上传处理。

创新互联建站网络公司拥有10年的成都网站开发建设经验,近1000家客户的共同信赖。提供成都网站建设、网站设计、网站开发、网站定制、买友情链接、建网站、网站搭建、响应式网站设计、网页设计师打造企业风格,提供周到的售前咨询和贴心的售后服务

如果发现Go 自带的框架解决不了问题,可以引入相应的第三方组件,比如ORM可以采用中国人写的gorm 比如web 的session 管理可以使用gorilla/session

当然你也可以直接上大一统的框架比如你提到的beego 还有大名鼎鼎的martini 。不过不推荐,因为这样的大框架和Go 语言本身的模块设计有冲突。

实际开发建议用vscode 加Go 插件来做IDE,基本包含了其他成熟IDE的所有功能,而且还自带强大的debug 功能。其他IDE debug 用起来非常麻烦比如idea 和liteIDE。题主也可以自己试下。

Golang web 框架对比

由于 golang 提供了完善的net/http标准库,基于该标准库实现一个web框架的难度相比其他语言低了不少,所以go web框架简直就是百花齐放。从老牌的revel和 beego ,到新出的 gin ,和 iris 等,而且还有一些类似于 chi 这种router。个人一般小项目,尤其是中间件需要暴露一些http接口的,基本就使用chi即可。

本次测试主要是gin iris echo 这三个框架。侧重在于高性能,从并发和json序列化和反序列化两个方面来测评,毕竟后台项目侧重的也就是这两个方面。

为了选择符合重IO的框架,现设定如下场景的demo,demo的具体要求如下:

gin:

iris:

echo:

由于要测试5种body样本,4种场景,4个框架,因此把重点数据筛选出来(吞吐量、错误率和99%Line,重要性依次递减),结果都绘制了图形,方便比对查看。

综合以上各个测试结果可以看出,gin以及iris都是非常优秀的框架,gin的优势比其他稍微大点,iris次之,而echo相应差一点。

本次测试只是简单测试了一下3个框架的并发和json相关。对比结果,不包括生态和工具的完善度等等。如果测试有什么不完善的地方,欢迎交流。

另外欢迎大家试用和star另外一个web框架 baa ,为了避嫌我没有贴出baa的数据,性能测试处于gin之后和iris之间。

golang 有哪些比较稳定的 web 开发框架

第一个:Beego框架

Beego框架是astaxie的GOWeb开发的开源框架。Beego框架最大的特点是由八个大的基础模块组成,八大基础模块的特点是可以根据自己的需要进行引入,模块相互独立,模块之间耦合性低。

相应的Beego的缺点就是全部使用时比较臃肿,通过bee工具来构建项目时,直接生成项目目录和耦合关系,从而会导致在项目开发过程中受制性较大。

第二个:Gin框架

Gin是一个GOlang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本;具有快速灵活、容错方便等特点,其实对于golang而言,web框架的依赖远比Python、Java更小。

目前在很多使用golang的中小型公司中进行业务开发,使用Gin框架的很多,大家如果想使用golang进行熟练Web开发,可以多关注一下这个框架。

第三个:Iris框架

Iris框架在其官方网站上被描述为GO开发中最快的Web框架,并给出了多框架和多语言之前的性能对比。目前在github上,Iris框架已经收获了14433个star和1493个fork,可见是非常受欢迎的。

在实际开发中,Iris框架与Gin框架的学习曲线几乎相同,所以掌握了Gin就可以轻松掌握Iris框架。

第四个:Echo框架

也是golang的微型Web框架,其具备快速HTTP路由器、支持扩展中间件,同时还支持静态文件服务、Websocket以及支持制定绑定函数,制定相应渲染函数,并允许使用任意的HTML模版引擎。


网站栏目:go语言web框架选型 golang 框架选择
路径分享:http://www.cdkjz.cn/article/hphhsd.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220