
op 最近在从 Java 的 SpringBoot 框架转向 Go 开发(大三学生),看了 Go 的一些框架,发现主流的有 Goframe 、Gin 、Beego 、Iris ,不知道目前哪个是最好用的?或者说现在企业一般在用什么框架?
1 cmdOptionKana 2023-04-06 22:00:51 +08:00 go web 框架之间的差别很小,主要因为标准库在这方面太强大了,框架只能简单地包一层,因此你可以先随便挑一个学,再学另一个框架是毫无难度的 |
2 Seanfuck 2023-04-06 22:05:31 +08:00 推荐 Gin 的最多 |
3 yrj 2023-04-06 22:33:47 +08:00 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 shakaraka PRO 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 PRO 选择 Gin,当然选择一个 简单的,然后明白了原理,其实就那些玩意儿,选择一个第三方库最多的. 社区活跃的. |
13 qfdk PRO 说几个比较重要的点吧: - 路由方不方便 - 中间件支持如何,开发方便不 - 错误处理如何 - 环境变量 - 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 Hertz 比较好 |
27 justseemore 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 推荐我厂的 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 |