Go 语言最新值得关注的 Web 框架

最近 Go 语言排名已经跌到前50名,其实这是 TIOBE 编程语言排行的数据,每个月都有,大不可作为学习或不学习的依据。有些语言不一定差,确排在不是很理想的位置。选语言要看市场的适应范围。选择通用的,生态环境繁荣的语言是错不了的,比如 Java C# C++ C 就是此类的语言。如果你觉得精力很充沛,需要学习借鉴其他语言的精髓,拓展个人知识面,大可选择 Python Ruby Go 这些语言,因为他们也不错。

说到 Go 语言,你这几年应该听说过,我不必说太多的东西了,看看它的缔造者和用它的人,就知道这门语言人品怎么样了。个人感觉它是一门纯粹的语言,为某一领域而生的语言,这么一说来,Go 似乎没有太宽的前景可言了,不过事实上,它市场表现还不错,上Github看看就会有所领悟。我喜欢它,是因为它原生并发的支持、很高的资源利用率以及非常不错的性能。总之用的人多了,自然它就有很多可能性,值得使用。

Go 语言 Web 框架,之前 Martini Revel 都算是高人气的框架,但他们是早期的框架,在新领域没有太多成熟方案参照的情况下,设计需要很大胆的构思和开创性的思维,考虑不周全,经验积累不足往往都存在,所以注定有些小瑕疵,比如Martini 设计理念很棒,但性能却不是很令人满意(后期可能有更大的提升),Revel初期就借鉴了 Java 的 Play! 框架结构,性能折中,有不少的局限性。总之前期的拓路者费了很大的努力,换来了很大的用户量,虽然有遗憾的也值了。

后浪推前浪,Go 领域的后来者,劲力十足,纷纷创造了更为先进的框架,比如 Goji, Negroni,Gin,Echo。


Goji是国人的创作的框架,特点是简单高效,性能也是不容小觑。


Negroni 是 Martini 缔造者的第二大框架,框架的纹理中,看到作者前期的深思熟虑,和不断的反省,用法上非常接近原生 Go 自身 Web 类库推崇用法,代码量很少,避免使用 Go 的反射机制,代码简洁不简单。作者说,Negroni 不是一个框架,最多算是一个 Go 里的一个类库。它只提供必要的 Web 开发主骨架,其他周边中间件 可以自行选择。Negroni 很容易集成第三方中间件。这就是作者想要的结果,一个人造,不如大家一起造,呵呵。现在作者 codegangsta 就轻松了,把 Martini 交给有能力的人管理,集大众的力量改造 Martini。


而 Negroni 现在很久没有更新了,因为该有的东西都具备了,可谓是小麻雀五脏六腑样样俱全;目前还有一些爱好者,提交自己的代码,不过作者今年后半期似乎很少开发了,希望后期他能重归增强一下小周边功能,比如支持 http2,log 自定义处理等等。


而 Gin,Echo 算是今后框架的主角了,按照现在的形式,框架迟早会登上名人榜,开发者很活跃,思维崭新,后持续力强大。


起初 Gin 借助 Martini 的性能说事,直接公布了自己路由器傲人的性能,有些测试据说是 Martini 的十几倍,甚者几十倍,这在整个 Go 界,一下子轰动了,后来慢慢稳定,有目标的向前发展,所谓众口难调,有些人不太喜欢它的命名方式,一直吐槽,但最终还是阻止不了它的爆发,命名确实很讲究,我进去看了看,发现确实有点让人不习惯,再看看作者,额,缔造者是西班牙人。


而 Echo,是最近发现有潜质的框架,发展势头也很猛,作者为了这个框架,投入了很多精力,人气指数也在飙升,而且它和 Gin 直接杠上了,杠上依据当然是路由器的性能,拿它说事。它的测试结果也非常令人吃惊,一气呵成的,很少依赖什么第三方类库,源码大多是一个人完成,风格统一,命名方式 very nice,一看就是地道的美国人写的。路由器性能在 Gin 之上(其实微乎其微的小),最关键的是,路由器几乎为零的内存占用率,成为 Go 很多框架追求的目标,也曾令 Gin 作者感叹,不得不在内存利用上下功夫,甚至有些 Gin 贡献者质疑 Echo 的测试结果。目前这两个框架,你追我赶,代码提交往往是你前我后,比赛似的,很有趣。我看好他们,特别是 Echo,以后应该不错,虽然说很多功能点,或多或少有点 bug,API也有待稳定。所以我现在暂且还用着 Negroni,先用的 Martini 和 Negroni ,已经很习惯了



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。