Golang Go语言的Web框架哪家强

Go 有不少 web 框架,很多都不是很完善,现在哪个发展的比较好?


Golang Go语言的Web框架哪家强
85 回复

试试 beego 支持下国产

更多关于Golang Go语言的Web框架哪家强的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


目前在用 echo ,要很多轮子。

beego 失去了 golang 的特点,但是开箱就能用。

主要看你 web 框架的用途吧(话说既然发在了 go 节点 那么不是应该在 go 节点里找一找呢?之前有很多菊苣讨论过🙈

revel , beego , iris , echo , gin

用过 gin 开发过不少项目,挺不错的

千万不要用 iris 。。。血泪教训。。。

gin 还不错。

用的 echo

beego: 让你找回 php 的感觉……

echo

千万不要用 iris

公司在用 gin

iris 怎么了?为啥?

iris 怎么了?为啥?

准备上 iris 。。。突然看到不推荐 我的内心啊。。。

不用框架 :D

作者偷代码。。

一个月前问肯定推荐 gin ,现在的话不会了。。

你遇到 gin 什么问题了?



https://github.com/gin-gonic/gin/issues/794 这么久了没有人管,现在 javierprovecho 也没怎么花心思在项目上,感觉要坑。。

看着最近几小时有回复了。。估计用 gopkg.in 和 canonical import paths 来吧

哪有 maintainer 回复? gopkg 等官方 dep 正式发布以后恐怕就和 godeps 一样慢慢退出舞台了,现在切过去意义有多大,而且还搞个半吊子就不动了。。

最后那个人是 member 啊,我看讨论的和 dep 没关系,是他们自己 import path 混乱。 canonical import paths 就是解决这个问题的

。那现在推荐用哪个?

不要用 beego

gin 或者 echo

canonical import paths 对于一般的项目意义不大,这个问题就是他们自己管杀不管埋瞎搞出来的,以前用 gopkg 最大的意义也是版本控制而不是解决依赖路径,现在这个节骨眼上再投靠过去真不合适。

不描述需求就伸手的都是耍流氓

你这么说,突然想起谢大本来是写 PHP 的……

不是投靠过去,他的 readme 也是 gopkg.in 的 import 了,只是用 canonical import paths 可以强制 import 路径。 github.com 的 import 就编译不过去。一刀切一下把事情处理掉好了

现在的问题是 contrib 好些都没跟着改,本来就编译不过。。

现状下切换到 gopkg.in 没什么意义,而且 gopkg 服务最近几个月一直不稳定

#30
我才知道,为什么会有这种感觉
感谢解惑

beego 就类似于 thinkphp ,一天就可以撸代码了

gin 不错, 功能基本都有, 但不会太 framework 限制你的使用.

从 echo 转到 chi , echo api 也不稳定

说 iris 的。。。你们真的看过 iris 源码么。。。。
其实我个人之前用框架。。。看了源码之后发现。。。
一个 http parser 就能解决很多需求。。

手急了。。。应该是 http router 。。。别的自己撸就好

[https://github.com/julienschmidt/httprouter]( https://github.com/julienschmidt/httprouter)

前阵子也不知道该选哪个框架,大致了解了几个然后选择了 gin ,挺好用的,花了一周时间把 ssh 的项目移植过来了

echo ,这个框架本来就有够好, go1.8 之后, go 的 web 服务可以裸跑了,不需要 nginx (之前看过一篇文章介绍的),而 echo 也提供了很多必要的功能。

是 ThinPHP 的感觉

Gorilla web toolkit

自己写的路过。

go 本身的组建已经很强了。

搞个中间件粘一下,搞个路由,搞下缓存。

基本齐活可以玩了。

我用过的几个组件推荐下

中间件: https://github.com/urfave/negroni

类 express 这个可用。但源代码部分有点不喜欢,重头写了

路由:https://github.com/julienschmidt/httprouter

这个还不错。调整一下也可以实现子路由的功能


内存缓存:https://github.com/coocood/freecache
可以做本地缓存用

序列化反序列化 :https://github.com/vmihailenco/msgpack
效率可能不是最高的。但是和原声的 json 包一样, interface 直接丢进去就可以了,省心。比 gob 效率高很多。

mysql/sqlite 的驱动。外加标准库的 template 等一些库。

普通的网站能搞的很不错了。

dep 目前与官方无关

gopkg.in 目前非 vendor 机制下的版本处理兼容性最好

ORM 哪家强?

只有这个火了 =。=


这个是 golang 社区的大神!你好!

gorm 文档写的不认真……特别是大小写,这个看着看着就能在脑内自动纠正了

还一问题就是,复合主键的情况下,调 AutoMigration 创建表。会报自增键只能有一个的错,导致表无法创建成功。

裸跑是神马意思,可以自己绑定域名了?

用 rust 的 rocket 呗

千万不要用 go 开发 web 应用

为什么啊?不是说 go 在并发处理方面有得天独厚的能力吗?

没有脚本语言灵活

自己撸框架吧. 帖下我的
https://github.com/Akagi201/light
基于 标准的 http middleware 管理包 alice 跟 性能最强的 httprouter. 兼容 context 包.
自己撸框架的好处是, 可以自由添加底层代码, 缺什么就加什么. 而且时间紧时可以不用写测试代码, 提交到官方 repo, 通常要写测试代码, 磨合很久才能合并.

我只会 beego 所以没什么可推的 无脑推 beego

一直没搞明白, go 在做 web 的时候强点在哪里?

写过一个认证服务, 用的 echo 。。。 没我 python 好用

说我的感觉,跟写普通程序很类似。 我本来也没有做过 web 开发,但是发现还是挺容易的

现在在用 gin 吧
推荐 echo 和 gin
go 写 web 建议还是做 api 为主 前后分离的做
像传统 php 或者其他那样耦合的 go 也不算特别合适 官方模板库挺不好用

跟脚本比不复杂多少但是提供更高的性能,更容易写出高吞吐 API 。不过和页面紧耦合就是痛苦了,所有的静态语言通病吧。

为啥要和页面耦合?前后端分离呗

接触 go 没多久,之前 web 都是用 java 做的,初步感觉 go 简洁易用,我那个笨重 ssh 项目后台管理用 java+ExtJs , api 部分现在改用 go 了,开发速度快多了,个人不太喜欢 python 的框架,依赖有时候很乱,发布也不太方便



凭心而论, go 写 web 不算特别强,但也不算很差。

主要是 web 大部分的时间都和数据库 /网络传素打交道。

go 的缺点主要是轮子少。文档太简略,动不动要爬源代码。

优点是部署简单,静态语言。

看需求决定。我们其实现在基本都是 SPA ,但是也不是所有人都需要 SPA

参考 github star 。了解下每个框架的优缺点,找到适合自己业务的。
目前个人大部分小项目自己撸。
稍大些的用 gin 和 beego 。

gin
该有的都有,不该有的也没有 :)

纯 api 项目 golang 开发很爽的。

去渲染 html 就蛋疼

就是不需要 nginx 反代, go 的 web 程序直接跑在生产环境。

https://news.ycombinator.com/item?id=13213902

当然,绑定域名这种事,肯定可以,这个是 echo 的做法 ( https://echo.labstack.com/cookbook/subdomains),其实其他的框架也可以

net/http 然后加需要的扩展就够了。 如果真要追求性能, httprouter 和 fasthttp 似乎不错,不过在生产环境还没尝试过

go 的模板渲染感觉不是强项,所以比较好的方案是前后端分离, go 只负责提供后端 API 接口,这绝对是强项,哈哈

绑定域名就是检查一下 request 的 Host 字段,不用任何框架都可以

正在试看框架

在Go语言的Web框架领域,有多个优秀的选择,每个框架都有其独特之处和适用场景,难以一概而论哪家“最强”,因为它们各有千秋,选择时主要取决于项目的具体需求和开发团队的偏好。

Gin是近年来非常流行的一个选择,它以高性能和易用性著称,API设计简洁明了,适合快速开发Web应用。同时,Gin拥有丰富的中间件生态,可以方便地集成各种功能,如认证、日志记录等。

Echo则是一个功能更为全面的框架,支持更多的特性和配置选项,适合构建复杂和大型的Web应用。Echo的性能也非常出色,且拥有活跃的社区和丰富的文档资源。

Beego是一个典型的MVC框架,提供了丰富的功能集,包括ORM、缓存、会话管理等,非常适合快速构建原型和中小型项目。其内置的路由和模板引擎也非常易用。

Fiber则是一个基于Fasthttp的高性能Web框架,旨在提供与Express.js相似的API体验,适合那些希望从Node.js迁移到Go的开发者。Fiber的性能在Go框架中名列前茅。

此外,还有Revel、Buffalo等更多优秀的Go Web框架,它们都在不同的方面有着出色的表现。

综上所述,选择哪个Go Web框架应基于项目的具体需求、团队的技术栈以及个人的偏好。建议在实际项目中选择几个候选框架进行试用和对比,以便找到最适合自己的那一个。

回到顶部