op 最近在从 Java 的 SpringBoot 框架转向 Go 开发(大三学生),看了 Go 的一些框架,发现主流的有 Goframe 、Gin 、Beego 、Iris ,不知道目前哪个是最好用的?或者说现在企业一般在用什么框架?
1
cmdOptionKana 2023-04-06 22:00:51 +08:00 2
go web 框架之间的差别很小,主要因为标准库在这方面太强大了,框架只能简单地包一层,因此你可以先随便挑一个学,再学另一个框架是毫无难度的
|
2
Seanfuck 2023-04-06 22:05:31 +08:00 1
推荐 Gin 的最多
|
3
yrj 2023-04-06 22:33:47 +08:00 2
gf 和 beego 都是国人开发的大而全的框架,gf 是新开发的,beego 早一些。
gin 和 iris 是精小的框架。gin 知名度最高,iris 的特点是底层用的 fasthttp ,都说性能更好。 我推荐另一款框架,gofiber ,后起之秀,功能较多,但不是啥都大包大揽,还是围绕在框架本身。底层也是 fasthttp 。 用它写过了一些项目,没遇到明显的坑。 |
4
yl20181003 2023-04-06 22:35:41 +08:00 via Android
gin 用的人多,个人比较倾向于 go fiber
|
6
wunonglin 2023-04-06 22:41:54 +08:00 1
go echo 。gin 的路由太难用了,而且官网超拉
|
7
mingqing 2023-04-06 22:58:53 +08:00
我用 grpc 然后自己包装下
|
8
hyqCrystal 2023-04-06 23:04:36 +08:00
gogogo
|
9
ClericPy 2023-04-07 00:01:08 +08:00
外行表示... 你发的顺序似乎就是目前流行程度, gf 比较新但是挺多人推荐的
|
10
mrtn08 2023-04-07 00:15:10 +08:00
没必要这么卡技术栈,何况还是在校生
|
11
neoblackcap 2023-04-07 00:34:47 +08:00
如果只是 web 框架,目前绝大多数都是在 go 的 net 标准库上实现路由系统以及中间件系统而已。没有太多区别。有区别的,往往不是那么主流
|
12
qfdk 2023-04-07 04:33:08 +08:00
选择 Gin,当然选择一个 简单的,然后明白了原理,其实就那些玩意儿,选择一个第三方库最多的. 社区活跃的.
|
13
qfdk 2023-04-07 04:42:08 +08:00
说几个比较重要的点吧:
- 路由方不方便 - 中间件支持如何,开发方便不 - 错误处理如何 - 环境变量 - orm 支持 - 看看有没有 demo 来看下项目结构,好的项目结构后面维护的时候会很方便 |
14
YuuuuuuH 2023-04-07 05:28:47 +08:00
Goframe 这个框架在接口这一层很难写单元测试。在做框架选型的时候要考虑一下有没有容易写单元测试的。
|
15
SenLief 2023-04-07 07:23:41 +08:00 via iPhone
你还是学生在学习阶段,没用在具体项目上,为啥直接用框架呢?不如从网络开始呢,标准库那么强大,值得学习一下。
|
16
Nazz 2023-04-07 08:18:23 +08:00 via Android
试试 fiber 吧,gin 的路由中间件不错但 codec 不太行,beego 不推荐
|
17
volCan0 2023-04-07 08:22:01 +08:00
go fiber
|
18
djoiwhud 2023-04-07 08:26:43 +08:00 via Android
gin
|
19
unfurl 2023-04-07 09:10:29 +08:00
|
20
jorneyr 2023-04-07 09:48:13 +08:00
我选择了 Gin ,看一会文档就会使用了。
|
21
pkoukk 2023-04-07 10:25:36 +08:00
不推荐使用 bee go 和 gf 这种框架
架构还是得自己搞,适合自己的最好,大包大揽的框架里有时候想实现某些东西的时候会非常非常别扭 |
22
hahasong 2023-04-07 10:57:00 +08:00
想要上手快 文档全 API 直观的肯定是 gin 了
|
23
AnroZ 2023-04-07 11:10:52 +08:00
不想太折腾,选 Gin 会好一些。
个人几年前随机选了 echo ,也还行吧,一直用到现在。但生态差很多,很多第三库没人维护,遇到 bug 需要自己去解决。 |
24
ikaros 2023-04-07 11:12:45 +08:00
1l 说完了,gin echo iris 之类的都差不多,用一个之后其他的基本就会了,我一直用的 echo
|
25
huihuiHK 2023-04-07 11:19:30 +08:00
学生的话,建议先直接用 net 标准库,然后再用这些框架。
|
26
PureWhiteWu 2023-04-07 11:27:38 +08:00 1
Hertz 比较好
|
27
zpfhbyx 2023-04-07 11:27:56 +08:00
go fiber
|
28
liuxu 2023-04-07 11:47:34 +08:00
gofiber 从维护积极性、文档组件齐全程度、易用度、qps 性能、硬件资源消耗五边图来看,应该是个五边形战士
gin 用的人多,star 最多,但是性能属于中等级别 |
29
RedisMasterNode 2023-04-07 11:51:59 +08:00
感觉性能开销其实对于比较重的业务来说差异不是很大,最好选一个生态比较完善的框架,其他框架不太了解,gin 使用下来大部分 middleware 都有现成的,社区讨论的人也挺多,google 找问题好找。
其他框架也可以分析一下看看,我觉得框架主要在于我能随时找到我要的组件并集成进来,有问题能找到解决方案,就比较满意了。 |
30
CharingCrossRoad 2023-04-07 11:56:04 +08:00
gin
|
31
Nazz 2023-04-07 12:05:48 +08:00 via Android
试试 fiber 吧,gin 的路由中间件不错但 codec 不太行,beego 不推荐
|
32
gxm44 2023-04-07 13:35:02 +08:00
echo
|
33
stephenhero 2023-04-07 13:45:27 +08:00
kitex
|
34
Jammar 2023-04-07 14:13:11 +08:00
net/http
|
35
nginxxx 2023-04-07 14:26:07 +08:00
fiber +1
|
36
epis2048 2023-04-07 14:32:18 +08:00
我用的 Hertz
|
37
JKeita 2023-04-07 14:46:42 +08:00
我的建议是老老实实学 java ,不然你以后工作都难找。
|
38
Oktfolio 2023-04-07 14:49:15 +08:00
用 :param 作为路径参数的我都不考虑
|
39
aw2350 2023-04-07 14:52:15 +08:00
首先排除 gf
|
40
fiypig 2023-04-07 14:56:53 +08:00
现在 Beego 还能上比较吗
|
41
iyaozhen 2023-04-07 15:20:32 +08:00 1
推荐我厂的 Hertz
没遇到什么坑 |
42
iyaozhen 2023-04-07 15:22:00 +08:00
@iyaozhen 至少内外部同源的,内部的包只是加了一些内部基建的适配,套了个壳,底层还是 import 了 GitHub 上面的包
|
43
Hathaway 2023-04-07 17:03:35 +08:00
go fiber ,现在就在用 fiber + nextjs 写一个自己的玩具项目,遇到问题的时候,查询 fiber 的文档都有解释。
|
44
mmdsun 2023-04-07 18:15:33 +08:00
|
45
IIInsomnia 2023-04-07 18:20:34 +08:00
yiigo + chi
|
48
unlighted 2023-04-07 20:06:18 +08:00
gf 吧,文档以及相关应用都蛮充分.比较好学习
|
49
gddg 2023-04-07 22:18:39 +08:00
@mingqing 请问处理 PB struct 转成 json,未赋值字段, json 相关 KEY 被省略掉.你是怎么处理的? 我设置了序列化参数 . 另外,PB 结构体数组类型进行 json 序列化, 是 PB 定义一个 list 来处理吗?
|
50
mingqing 2023-04-07 22:52:07 +08:00
@gddg 生成的 PB 属性默认都是 json:"uuid,omitempty",要么通过 protoc-X 工具去自定义干预 json 定义,如 protoc-gen-gogo 或者设置序列化参数,或序列化使用 `protobuf:name=uuid,proto3"` 中的 name 作为 json 序列化的参数名。
|
51
ixixi 2023-04-08 11:10:36 +08:00
gin 吧
api 稳定很重要 不能光看他有啥功能,给你整一个大升级 比较难搞 |
52
349865361 2023-04-11 10:27:53 +08:00
go fiber 挺不错
|
53
webcape233 2023-04-15 23:38:23 +08:00 via iPhone
gin 最多,但是我觉得 echo 更好用呢
|
54
skyenought 2023-04-20 00:14:32 +08:00
@PureWhiteWu 咱推荐框架怎么也应该来个地址吧 purewhite ?😂
https://github.com/cloudwego/hertz Hertz 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp 、gin 、echo 的优势,并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。如今越来越多的微服务选择使用 Golang ,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择 |
55
jack139 2023-04-20 09:58:07 +08:00
一直用这个 github.com/valyala/fasthttp ,记得好像不支持 http2.0 ,其他都 ok
|
56
xsen 2023-04-28 23:39:22 +08:00
go-zero
|