慢聊Go之Go常见的Web 开发框架|Go主题月

简介: 慢聊Go之Go常见的Web 开发框架|Go主题月

前言

自发布以来,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开发框架

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开发框架,大家喜欢就好!!


目录
相关文章
|
2天前
|
设计模式 开发框架 数据库
Python Web开发主要常用的框架
【5月更文挑战第12天】Python Web开发框架包括Django、Flask、Tornado和Pyramid。Django适用于复杂应用,提供ORM、模板引擎等全套功能;Flask轻量级,易于扩展,适合小型至中型项目;Tornado擅长处理高并发,支持异步和WebSockets;Pyramid灵活强大,可适配多种数据库和模板引擎,适用于各种规模项目。选择框架需依据项目需求和技术栈。
14 2
|
14天前
|
Go API 数据库
【Go 语言专栏】Go 语言中的 ORM 框架使用与比较
【4月更文挑战第30天】本文对比分析了Go语言中的常见ORM框架:GORM、XORM和BeeORM。GORM功能强大,支持复杂查询和关联关系处理,但可能影响性能;XORM以其简单易用和高性能受到青睐,但文档不全;BeeORM简洁高效,适合基础应用场景。选择ORM应考虑功能、性能、易用性和社区支持,根据项目需求进行评估和选择,以提升开发效率和应用性能。
|
1天前
|
机器学习/深度学习 JSON 编译器
C++ 资源大全:标准库、Web框架、人工智能等 | 最全整理
C++ 资源列表,内容包括: 标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等
12 1
|
3天前
|
Go
golang学习3,golang 项目中配置gin的web框架
golang学习3,golang 项目中配置gin的web框架
|
8天前
|
分布式计算 Java Go
Golang深入浅出之-Go语言中的分布式计算框架Apache Beam
【5月更文挑战第6天】Apache Beam是一个统一的编程模型,适用于批处理和流处理,主要支持Java和Python,但也提供实验性的Go SDK。Go SDK的基本概念包括`PTransform`、`PCollection`和`Pipeline`。在使用中,需注意类型转换、窗口和触发器配置、资源管理和错误处理。尽管Go SDK文档有限,生态系统尚不成熟,且性能可能不高,但它仍为分布式计算提供了可移植的解决方案。通过理解和掌握Beam模型,开发者能编写高效的数据处理程序。
136 1
|
14天前
|
缓存 监控 测试技术
【Go语言专栏】使用Go语言构建高性能Web服务
【4月更文挑战第30天】本文探讨了使用Go语言构建高性能Web服务的策略,包括Go语言在并发处理和内存管理上的优势、基本原则(如保持简单、缓存和并发控制)、标准库与第三方框架的选择、编写高效的HTTP处理器、数据库优化以及性能测试和监控。通过遵循最佳实践,开发者可以充分利用Go语言的特性,构建出高性能的Web服务。
|
14天前
|
中间件 Go API
【Go 语言专栏】Go 语言中的 Web 框架比较与选择
【4月更文挑战第30天】本文对比了Go语言中的四个常见Web框架:功能全面的Beego、轻量级高性能的Gin、简洁高效的Echo,以及各自的性能、功能特性、社区支持。选择框架时需考虑项目需求、性能要求、团队经验和社区生态。开发者应根据具体情况进行权衡,以找到最适合的框架。
|
14天前
|
自然语言处理 Java 编译器
【Go语言专栏】Go语言中的gRPC框架应用
【4月更文挑战第30天】Go语言的gRPC是一个高性能RPC框架,基于HTTP/2和Protocol Buffers,支持多语言。其特点包括高性能、强类型和双向流。在Go中使用gRPC,需定义接口(如hello.proto),生成Go代码,实现服务器端(注册服务到gRPC服务器)和客户端(调用服务)。此外,gRPC还提供流、错误处理和拦截器等高级特性,适用于复杂通信场景。
|
15天前
|
机器学习/深度学习 前端开发 数据可视化
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
数据分析web可视化神器---streamlit框架,无需懂前端也能搭建出精美的web网站页面
|
15天前
|
开发框架 前端开发 JavaScript
学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面
学会Web UI框架--Bootstrap,快速搭建出漂亮的前端界面