热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

慢聊Go之Go常见的Web开发框架

慢聊Go之Go常见的Web开发框架,Go语言社区,Golang程序员人脉社

image.png

前言

自发布以来,Golang(Google的Go编程语言)已成为编写API和Web服务的强大且流行的选择。引入后,主流用户更喜欢这种编程语言。

在2016年12月进行的分析之后,在3595名受访者中,将近89%的人决定在工作中或工作之余去学习Golang。

在专有技能和选择方面,Golang在所有Web编程语言中排名最高。

今天,有点不在状态,就不好好的把Java与Go做更细节的对比了。我们今天大概的聊一下,目前比较好用的Go Web Framework。

Golang特点

Google的Go语言又名Golang,可以编译为快速运行的本机代码。我们之前也讲过,它的出现,为了让开发人员开发变得容易。

作为一种开放源代码,经过编译的编程语言,Golang帮助开发人员创建可靠且简单的软件。

该语言定义了诸如C和C ++之类的较为温和的语言的演变和创新。此外,Go拥有广泛且不断增长的用户。

Golang专为并发性和可伸缩性而设计,并且还使优化成为可能。使用这种编程语言,可以消除大量的代码键入和编写独特的API,而不会影响功能。这种编译语言可以在运行时之前执行所有代码检查工作。

Golang诞生的Web开发框架

image.png

1.Martini

Martini由Sinatra激活,实际上是一个轻量级的Web框架。它处理了一些基本问题,例如异常处理,路由和中间件的一些功能。

Martini能够做一些独特的事情,例如根据类型将各种数据集动态注入到处理程序中。

尽管这是一个很小的社区,但它确实很活跃,并且有二十个或以上的活跃插件。由于这是一个小型框架,因此要是使用的话,可能要附加更多组件。

2.Gin Gonic

该Web框架具有与Martini类似的API,但是表现的更好。

保守的Gin Gonic框架仅包含最重要的功能和库。这使其成为构建高性能REST API的理想选择。而且,这比Martini框架快40倍。

无论您是否添加渲染,JSON验证,嵌套组和中间件,它仍然保持其最终功能。该框架利用httprouter,这是Golang语言最快的HTTP路由器。

3.Beego

Beego与Python的Django网站框架相似。它拥有Web应用程序共有的广泛功能,并分为8个模块,可以根据需要避免或使用这些模块。

除了出现在最大的Web框架中的常规MVC元素外,它还集成了ORM(对象关系图)以访问数据,会话处理工具,内置的缓存处理程序,用于HTTP组件的常规操作的库以及日志记录系统。

Beego是另一种让人想起Django命令行工具的方式。例如,开发人员可以从一开始就使用bee命令来开发Beego应用程序或处理当前的应用程序。

4.网络/ HTTP

开发人员通常仅使用HTTP或net来开发整个XMPP服务器,因为所需的仅仅是其性能正常即可。

但是,复杂的Web应用程序通常需要中间件。还有一些吸引人的项目,可让其他Golang Web框架的中间件与标准HTTP或网络进行混合和匹配。

无疑,这个社区很大,因为用户可以再次使用许多其他项目中的位。

但是,它具有受限制的接口,并且没有定义最大化中间件的标准方法。

5.Buffalo

使用Buffalo,即可快速轻松地开发新的Web应用程序。Buffalo将在开始新项目时设置一切-从前端到后端Web建设。

Buffalo带有热重载功能,这意味着dev命令将自动观察.html和.go文件。然后,它将重新启动并重新开发二进制文件。

它是一个整体的Web建设生态系统,可帮助直接开发应用程序。

6.Mango

尽管Mango的创建者Paul Bellamy并没有积极维护它,但许多Golang用户仍在使用它。关于此Web框架,模块化是最好的选择。可以从不同的库中进行选择,以将它们合并到项目中。

Mango框架可帮助您尽可能轻松,快速地开发HTTP功能的可重用模块。而且,它由一系列应用程序和中间件组成,并包含在一个HTTP服务器对象中,以使代码保持自主。

7.Gorilla

Gorilla可能是运行时间最长,最大的Go Web框架。对于用户而言,该模块化框架可以具有尽可能少的数量或尽可能多的数量。这很好用,因为许多组件可以直接通过net / HTTP库重用。

在所有框架中,Gorilla可能是最大的英语社区。此外,它具有强大的WebSocket,因此您无需使用Pusher等第三方服务,就可以将与WebSocket类似的代码精确地附加到REST端点。

8. Gocraft

Gocraft是另一个强大但保守的框架,它提供了可扩展的快速路由功能。路由由它从标准库添加到HTTP或net程序包。

Gocraft是一个Go mux定制中间件软件包,它具有反射和转换功能,因此可以静态键入代码。

此外,可以编写自己的代码或使用内置的中间件添加其他功能。由于开发人员将性能放在首位,因此Gocraft对他们来说是一个了不起的选择。

此外,使用上述框架编写后端Web应用程序确实更加容易。

9.Goji

这是一个快速,轻量级的框架,主要优先考虑其简单性和组合能力。

Goji与net / http.ServeMux类似,是一个保守的HTTP请求多路复用器,它结合了Einhorn辅助功能。这种支持使开发人员可以在Goji中获得Web套接字帮助。

Goji的其他功能包括正常关机,可重新配置的中间件堆栈,URL模式等。

Goji作为Web框架已经满足了不同企业的众多请求。

总结

介绍了下常见的Go 的web开发框架,大家喜欢就好!!

明天,继续细节对比,助你转型!!


推荐阅读
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 31.项目部署
    目录1一些概念1.1项目部署1.2WSGI1.3uWSGI1.4Nginx2安装环境与迁移项目2.1项目内容2.2项目配置2.2.1DEBUG2.2.2STAT ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了自动化测试专家Elfriede Dustin在2008年的文章中讨论了自动化测试项目失败的原因。同时,引用了IDT在2007年进行的一次软件自动化测试的研究调查结果,调查显示很多公司认为自动化测试很有用,但很少有公司成功实施。调查结果表明,缺乏资源是导致自动化测试失败的主要原因,其中37%的人认为缺乏时间。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • svnWebUI:一款现代化的svn服务端管理软件
    svnWebUI是一款图形化管理服务端Subversion的配置工具,适用于非程序员使用。它解决了svn用户和权限配置繁琐且不便的问题,提供了现代化的web界面,让svn服务端管理变得轻松。演示地址:http://svn.nginxwebui.cn:6060。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
author-avatar
辛集小怪兽_603
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有