为什么我坚持用Go语言做Web应用开发框架?

栏目: Go · 发布时间: 5年前

内容简介:关键时刻,第一时间送达!

点击上方“ CSDN ”,选择“置顶公众号”

关键时刻,第一时间送达!

【CSDN编者按】很多情况下,企业上线或需要快速迭代一款新的产品,但会发现原有的后端框架已不太适用,甚至影响了开发调试速度,那么寻找一种新的开发框架和编程语言变得极为迫切。本篇将 揭秘用于创建网站和REST API的最流行、最强力和最全面的 Go 框架。

为什么我坚持用Go语言做Web应用开发框架?

Google的Go语言(又名Golang)已成为编写网络服务和API强有力的选择。它可以编译成快速运行的原生代码,天生支持异步编程,还拥有广泛和不断扩大的用户群。

下面列出了网络开发中用到的Go语言的主要框架。一些框架旨在简化用户的使用,如API访问点等。还有一些主要是为了处理全面的网站开发,或者可以根据工作需要的组件扩张或缩减开发。

Go网络开发框架:Beego

在某些方面,Beego会让人联想到 Python 中包罗万象的Django Web框架。它具备各种Web应用程序的通用功能,总共有八个模块,你可以根据需要选择使用。除了大多数Web框架中常见的模型-视图-控制器(model-view-controller,MVC)组件外,它还包括访问数据库的对象关系映射(object-relationship map,ORM)、内置缓存处理程序、会话处理 工具 、日志记录机制和常用的操作HTTP对象的库。

Beego还有一个与Django很相似的地方是它的命令行工具。例如,你可以使用bee从头创建Beego应用或管理现有的应用。

Go网络开发框架:Gin

Go的第一个Web开发框架是Martini,但这个项目已经停止了维护。然而,其他Go框架如雨后春笋般纷纷涌现,它们使用Martini的基本思想,但是具有更好的性能和更多的功能。

Gin就是其中的一个项目。它使用修改过的的httprouter软件包来提高速度,并为很多常见的场景提供处理程序,包括中间件、文件上传、日志、将前端HTML组件绑定到后台的数据结构等等。其稳定版API是1.x版本,所以未来的变更应该不会破坏现有的Gin应用。

Go Web开发框架:Gorilla

Gorilla的定位是“Web工具箱”,而并非MVC风格的框架。它提供的库可以帮忙解决Web服务编程中各种底层的问题,包括context(在请求期间保存状态)、mux(路由和调度),以及实现HTTP上的安全cookie、会话、websocket和RPC等功能。

Gorilla没有提供模板、表单和其他前端部分。你需要自己准备这些部分,你可以在其他框架中使用Gorilla的各个组件,或是在独立组件中集成用Gorilla编写的东西。

Go Web开发框架:Echo

Echo是另一个小框架,主要面向API。例如,它并没有提供模板系统,所以你可以根据需要使用Go自己的html/template。但是,Echo提供了几种常常用于API的中间件模块,例如基本的认证和密钥身份验证、压缩、代理和日志记录。

Echo还提供了大量实用的recipe,其中很多无需大费周折就能实现。例如,如果你想使用Let’s Encrypt来管理HTTPS证书,那么可以设置一种recipe来自动安装这些证书。

Go Web开发框架:Iris

Iris的创建者称其为“真正属于Go的Express.js”,也就是说,它是JavaScript / Node.js的Web框架的Go语言版,它使用最小设计,绝大部分功能都由插件提供。Iris提供基本的MVC功能,自带对中间件、会话、路由和缓存的支持。

以下文档包含很多Iris的示例,包括与React前端的交互,或在Docker / Kubernetes环境中运行的项目: https://iris-go.com/v10/recipe

Go网络开发框架:Revel

Ruby on Rails为MVC风格的Web框架提供了一个通用模式,许多其他语言都仿照Ruby on Rails实现了自己的框架。Revel的创建者将其视作Rails的灵魂。

除了提供基本的MVC,Revel还允许你自由使用其他组件来满足其他需求。你可以使用Go自己的原生html/template包,或自己提供。同样,对于HTTP引擎,你也可以使用Go自己的或第三方提供的。缓存可以在本地的内容中完成,也可以通过 MemcachedRedis 在后台完成。但是,该框架没有数据库的原生ORM。Revel文档的一个例子( https://revel.github.io/examples/booking.html )中使用了Gorp库,但理论上来说你可以使用任何Go ORM。

原文: https://www.infoworld.com/article/3274464/web-development/6-must-have-web-frameworks-for-the-google-go-language.html

作者:Serdar Yegulalp

译者:弯月;责编:杨丽

为什么我坚持用Go语言做Web应用开发框架?

为什么我坚持用Go语言做Web应用开发框架?


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

计算的本质

计算的本质

[英] Tom Stuart / 张伟 / 人民邮电出版社 / 2014-11 / 69.00元

《计算的本质:深入剖析程序和计算机》借助Ruby全面介绍计算理论和编程语言的设计。作者注重实用性,不仅尽量抛开复杂难懂的数学符号,而且特别选用简单快捷的编程语言Ruby,在读者熟知的背景知识下,以明晰的可工作代码阐明形式语义、自动机理论,以及通过lambda演算进行函数式编程等计算机科学知识,并为让其自行探索做足准备。 本书适合计算机科学系学生,以及熟知现代编程语言,想要系统地学习计算机科学......一起来看看 《计算的本质》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换