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

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

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

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自己的或第三方提供的。缓存可以在本地的内容中完成,也可以通过Memcached或Redis在后台完成。但是,该框架没有数据库的原生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应用开发框架?相关推荐

  1. 用 Go 语言,做 Web 编程开发

    人民邮电出版社和实验楼合作的第 15 本书来了! Web 介绍 Web 应用在我们的生活中无处不在.看看我们日常使用的各个应用程序,它们要么是 Web 应用,要么是移动 App 这类 Web 应用的变 ...

  2. 如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

  3. python开发网页有优势吗_Python用来做Web开发的优势有哪些

    Python是世界上最受欢迎的编码语言之一,在80年代后期首次受到ABC和Modula-3语言的影响而被概念化.从1991年的第一个版本到成为开源项目的2.0版本,它已经走了很长一段路,直到今天,它正 ...

  4. 原生Android也能做Web开发了

    大家好,今天跟大家介绍一个让原生Android也可以做Web开发的开源项目--AndServer. 开源地址:github.com/yanzhenjie/- AndServer是一个Android端的 ...

  5. pythonweb开发-如何用Python做Web开发?——Django环境配置

    用Python做Web开发,Django框架是个非常好的起点.如何从零开始,配置好Django开发环境呢?本文带你一步步无痛上手. 概念 最近有个词儿很流行,叫做"全栈"(full ...

  6. 软件测试用python一般用来做什么-Python用来做Web开发的优势有哪些

    Python是世界上最受欢迎的编码语言之一,在80年代后期首次受到ABC和Modula-3语言的影响而被概念化.从1991年的第一个版本到成为开源项目的2.0版本,它已经走了很长一段路,直到今天,它正 ...

  7. chrome Native Client 让你可以使用 C 以及 C++ 语言开发 Web 应用

    Native Client 让你可以使用 C 以及 C++ 语言开发 Web 应用 2011年8月22日发表评论 新浪微博 网易微博 腾讯微博 开心网 人人网 豆瓣 Google 的产品经理 Chri ...

  8. 为什么做Web开发要选择PHP

    大部分互联网公司做WEb开发都选择PHP,PHP的优势在哪?你应该知道的 以前偶尔被人问到,为什么你(和大部分互联网公司)做Web开发要选择PHP, PHP有什么好处.简单的回答便是"PHP ...

  9. 想转行做web前端工程师,必学这6大技能!你都知道吗?

    web前端工程师是近几年才发展出来的新兴职业,也是目前火爆且高薪的职业. 大需求的市场环境下,出现了越来越多的人群转行做web前端工程师,如设计师.后台程序员.网虫.大学其他专业.策划.编辑等等. 要 ...

最新文章

  1. GlusterFS下如何修复裂脑文件?(续一)
  2. element 0 of tensors does not require grad and does not have a grad_fn
  3. 计算机攻防网站在线对攻,对攻
  4. 很多人都不知道的小秘密,c++中拷贝分为两种
  5. vue动态生成下拉框_vue+elementui 动态创建下拉框
  6. 实战SpringMVC+Mybatis搭建高性能安全站点
  7. python可视化分析网易云音乐评论_网易云音乐热门评论api分析
  8. CMFCPropertySheet的使用及PROPSHEETHEADER结构体介绍
  9. realme X7 Pro至尊版确认:最便宜的曲面屏手机
  10. 设置最大值_Power BI经典技巧:在走势图上标注最大值、最小值…
  11. android上实现0.5px线条
  12. 工程力学考研 可以转计算机专业吗,跨专业考研我是工程力学的本科生,想要考飞行 – 手机爱问...
  13. Java教程_软件开发基础
  14. 在proteus软件80C51芯片隐藏电源接口VCC
  15. 转:天下互联CEO张向宁:傻目录不是搜索引擎
  16. 金山毒霸系统清理专家
  17. 【黑金视频连载】NIOS II视频教程(01)--软件安装
  18. android 扫码枪编程,android 扫码枪解惑
  19. 省市区三级行政区代码(包含港澳台)sql3
  20. fdtd 磁场 matlab,矩形谐振腔电磁场的FDTD分析和Matlab仿真

热门文章

  1. python获取路径时,如果要想使用外部定义的字符串变量,需要注意(附带isfile)
  2. Flutter实战一Flutter聊天应用(二十)
  3. 中国双侧人工耳蜗行业市场供需与战略研究报告
  4. 散热器老化引起电脑死机
  5. 5 张图带你了解 Pulsar 的存储引擎 BookKeeper
  6. 从头开发一个 RPC 是种怎样的体验?
  7. Python入门你要懂哪些?这篇文章总算讲清楚了
  8. “开源社区运营就像种菜”,黄东旭谈开源商业化 | 独家
  9. 万元奖金 , 百万流量 , 助你成为CSDN超级红人 !
  10. Mitchell Baker:担任 Mozilla CEO 是我最艰难的职业