go有哪些快速开发的web框架

  • Beego框架

Beego框架是台湾程序员astaxie的Goweb开发的开源框架。Beego框架最大的特点是由八个大的基础模块组成,如下图所示:
go有哪些快速开发的web框架_第1张图片
八大基础模块的特点是可以根据自己的需要进行引入,模块相互独立,模块之间耦合性低。
相应的Beego的缺点就是全部使用时比较臃肿,通过bee工具来构建项目时,直接生成项目目录和耦合关系。这会导致在项目开发过程中受制性较大,本来Golang语言是灵活,在Beego中会收到一些限制,当然这个限制是有限的。
Beego框架受欢迎的原因还有一个就是Beego由汉语官方网站,网址如下:https://beego.me/docs/intro/,并配备有完整的学习文档和项目案例。

  • Gin框架

Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了1.0版本。具有快速灵活,容错方便等特点。其实对于golang而言,web框架的依赖要远比Python,Java之类的要小。自身的net/http足够简单,性能也非常不错。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
目前在很多使用Golang的中小型公司中进行业务开发,使用Gin框架的很多,大家如果想使用golang进行熟练web开发,可以多关注一下这个框架。
Gin框架源码地址:https://github.com/gin-gonic/gin
Gin学习文档地址暂时没有找到系统的,如果入门学习的话,可以关注这个:https://www.jianshu.com/p/98965b3ff638
在企业开发环境下,还需要学习用到xorm框架,这里一并列一下xorm框架的资料。xorm框架学习文档:http://xorm.io/docs

  • Iris框架

Iris框架在其官方网站上被描述为Go开发中最快的Web框架,并给出了多框架和多语言之前的性能对比。目前在github上,Iris框架已经收获了14433个star和1493个fork,可见该框架也非常受欢迎。在实际的开发中,Iris与Gin的学习曲线几乎相同,因此,掌握了Gin就可以轻松掌握Iris框架。Iris框架的相关资料如下,供大家学习:

+ Iris官网:https://studyiris.com/example/iris.html
+ Iris源码地址:https://github.com/kataras/iris
+ Iris系统学习文档:https://iris-go.com/
  • Echo框架

Echo是个快速的HTTP路由器(零动态内存分配),也是Go的微型Web框架。其具备快速HTTP路由器、支持扩展中间件,同时还支持静态文件服务、WebSocket以及支持制定绑定函数、制定相应渲染函数,并允许使用任意的HTML模版引擎。可以通过如下一张图表明Echo框架的路由性能:
go有哪些快速开发的web框架_第2张图片
Echo的相关资料如下,供大家进行学习:

+ 关于Echo框架的介绍:[https://mp.weixin.qq.com/s/BlyQvkw84dBhs4mX_SB5DQ](https://mp.weixin.qq.com/s/BlyQvkw84dBhs4mX_SB5DQ)
+ Echo框架官网:[https://echo.labstack.com/](https://echo.labstack.com/)
+ Echo源码地址:[https://github.com/labstack/echo](https://github.com/labstack/echo)

上面列举的,都是我自己用的过的和熟悉的,如果作为一个goWeb开发者程序员来说,大部分业务绝对足够用了,上面的这些框架在github上的star数都超过了1万,有的接近2万。说明这些框架是最受开发者喜欢和接受的,因此可以从上面这些框架学起。

如果还想了解其他的框架,可以关注的有:Buffalo框架Revel框架Martini框架Traffic框架Goji框架等等。

最后,框架只是能更快速的帮我们构建业务,提升开发效率。掌握Golang语言的特点和编程核心,才能写出自己的娴熟代码。

4、为什么 Go 语言的性能还不如 Java

https://www.zhihu.com/question/59481694/answer/293789587

每种语言都有自己擅长和不擅长的一面,语言本身特性再好也能被烂代码毁掉。世上99%的程序都轮不到比拼原生语言性能的地步。不同场景下,原生机器码未必比虚拟机runtime强(如题目中的Go和C#),甚至编译型写得不好还不如解释型(如IO密集场合)。

与其争论语言本身极端情况下的性能到底如何,倒不如把各个实际应用中的逻辑老老实实地写好吧。有的地方少加几个低效的循环,必要的地方用上缓存,数据库结构优化一下。提升的效率比Go和C#以及任何两门流行语言的性能差距大多了。另外如果以稍微牺牲一点性能的代价大大提升可读性和可维护性,也是十分值得的。

程序员要讲究格局和大势,不必拘于小节,主流编程语言的性能跟语言的地位基本是一致的,就是底层语言(汇编、C、C++..)> 中间层高级语言(Go,Java,C#...)> 上层脚本语言( Python,Lua,Ruby...)。知道这个大势就可以了,因为胎里素的原因,不会有错,当然这是在同一水平程序员编程的情况下,如果程序员水平不一样,可能会出现底层语言性能不如高一层语言的情况,毕竟任何优化也拿烂代码没办法。明确这个大势,那么评估性能就变成,写出同样性能程序你要付出的代价要更值得权衡考虑。

一个程序设计语言的性能表现主要取决于编译器和运行时,以及代码质量。

你可能感兴趣的:(好程序员)