并非伸手党,不为别的,纯粹引战~~
目前我们的项目都是 springboot 一把梭,无奈太吃资源,4G 内存的服务器,跑不了几个项目。 当然主要是为了折腾,有心想尝试一下 go lang 的 web 框架玩一玩。
随便搜了一下,发现 go 的框架太多了,大而全的,小而美的,国产的,进口的,太多了。这么好的选型素材不来 V 站水一贴,简直暴殄天物。
我们的需求:中小型项目(做外包,接私活),要求上手快,出活块,然后该有的权限管理,jwt 都要有。尽量轻型吧,少占资源。
好了,恳请大家推荐一下,我会用心比较。谢谢
101
brucewuio 2020-06-11 17:57:20 +08:00
4GB 都不够? 很怀疑
|
103
hyperxu 2020-06-11 18:03:49 +08:00
问就是 gin
但是既然你提到了 springboot 一把梭,那可以看看 go 版 spring,https://github.com/go-spring/go-spring |
104
skyrem 2020-06-11 18:03:55 +08:00
借楼问一句,B 站貌似也是 go ,用的啥框架?
|
105
maoxs2 2020-06-11 18:07:44 +08:00 via Android
不用框架。gayhub 静态页面加官方 net 包直接撸 api 。本身就是图它简单才用的没必要自己加戏。
|
106
SwagXin 2020-06-11 18:14:20 +08:00
不用
|
107
di1012 2020-06-11 18:18:23 +08:00
gin beego 二选一
|
109
agdhole 2020-06-11 19:10:50 +08:00 1
上来就写业务,不用复杂配置,啥都集成了,推荐 asp .net core XD
|
110
allgy 2020-06-11 19:50:12 +08:00 via Android
httproter + sqlx
|
111
allgy 2020-06-11 19:50:58 +08:00 via Android
更正 httprouter + sqlx
|
112
wslzy007 2020-06-11 20:27:45 +08:00
|
113
wangbenjun5 2020-06-11 20:50:20 +08:00
我只说一句,千万不要用 beego,自带的 orm 太坑了。。。当然你也可以选择接个 gorm
|
114
lithbitren 2020-06-11 20:58:55 +08:00
go 各个框架的性能根本不是重点考察要素,主要还是看框架本身好不好用。
|
115
LittleYangYang 2020-06-11 21:26:06 +08:00
我比较喜欢用 Echo
|
116
gemini767 2020-06-11 23:15:46 +08:00
如果不需要私有化部署的话,不如升级 paas 或者 saas
|
117
tt0411 2020-06-11 23:20:34 +08:00
Go 适合写业务逻辑清晰稳定的中间件, 做 Web 业务开发真的不合适, 特别是因为没有异常机制, 满屏 if err != nil ...
|
118
kzzhr 2020-06-11 23:58:48 +08:00
推荐一发 iris,gin 实在是太弱了。用 gin 要么拷一坨代码,要么自己做二次封装。图啥呢
|
119
labulaka521 2020-06-12 00:00:20 +08:00 via iPhone
fasthttp 听说也不错性能很好呢
|
120
zzlettle 2020-06-12 00:24:26 +08:00 5
go 开发 web 其实效率很低,现在基本没有哪个框架够得上及格线。
所谓百花齐放,其实就是在说一堆垃圾,一个能打的都没有 gin 什么的,谁用谁知道,跟没有框架,用 go 直接撸基本没有什么区别 什么框架太重,我就喜欢这样么重口味的,最好是那种一键就自动生成,就是楼主说的,只用写逻辑不用关心其他的 越重越好。 我现在用 django,起码开发的时候基本可以做到只关心逻辑。运行效率根本不在考虑的选项。开发效率才是最重要的 |
122
Hanggi 2020-06-12 00:40:52 +08:00
@zzlettle go 做 web 效率低能说出个 1 2 3 吗?很好奇是怎么开发的。
跟 go 直接撸没有区别?你当 github 3 万 stars 都是傻子😓。 不考虑性能是没问题的,但是如果开发效率在差不多的情况下为什么不用强类型,高性能,轻量级,易扩展的 gin 呢? |
123
zzlettle 2020-06-12 03:58:42 +08:00 1
@Hanggi 我是说开发效率。3 万 stars 是不是傻子不知道,django 少说百万的用户量,现在是在比拼人数?自己开发的时候,心里没有个数吗。gin 框架自己都说了,只是把一些基本的东西整合,简化下,你要开发一些 web 基本的模块,还是要自己写。他只是帮你简化,不用一个函数套一个函数。gin 开发最大量的就是 api,说的简单点,基本就是一个数据库的 go 接口超级强化版,让前端来调用数据。开发个传统意义的 web,你试试,各种库用到你要死的心都有.
|
124
zzlettle 2020-06-12 04:08:40 +08:00 1
@Hanggi 用 gin 开发有一个不是很大,但是确比较限制的问题,就是 router,也就是 url.因为他用的 router 库的原因,导致了他开发的网站的 url,不是能全部 2 级的地址。本来这个不是大问题,但是现在就有这么一个需要怎么办。比如开发一个需要 seo 的网站,比如商城,现在需要所有的商品和类目都是这样的 地址
/prod1 /prod2 /class1 /class2 也就是说,不能用以前常用的那种 /class1/prod1 /class2/prod2 必须部分级别部分产品,不分文章 全部都是一级的地址 gin 的 router 模块就实现不了这样的效果 必须换别的 router gin 换 router 基本就是要换 gin |
125
lithbitren 2020-06-12 05:14:09 +08:00
只用过 gin,不考虑 beego,有哪个 diao 大的港港国产 gf 有啥坑吗,用的人少,网上都没啥深度评测
|
126
Hanggi 2020-06-12 07:42:57 +08:00
@zzlettle 你说的这个问题确实存在,但这个其实不是 gin 的问题,而是 httprouter 会产生 wildcard conflict 的问题。
但是并不是说必须要做成你说的那样,你说的那个只是其中一种解决方法,网上搜搜的话能搜到很多解决方案。 https://hanggi.me/post/golang/wildcard-conflict/ httprouter 自己也说,他们就是故意这么做的,要的就是一个性能,如果无法接受可以选择其他不使用 httprouter 的框架。 还有,gin 本身就是一个轻量级、高性能框架。他帮你把 go 语言这类静态语言中很多麻烦的数据绑定、解析、校验的工作都给你做好了,剩下的只要按你的要求添加 gorm, go-jwt, 等库就好了,还要啥。 如果你一定需要一个 full solution 可能确实要自己费点功夫,但也不是你说的自己手撸个什么出来,都是有可以直接拿来用的方案的。 |
127
orm 2020-06-12 07:58:45 +08:00
|
128
orm 2020-06-12 08:03:45 +08:00
grails 应该是 groovy
|
129
jss 2020-06-12 08:15:22 +08:00 via iPhone
@tt0411 不需要 if 判断,单独封装一个 error 处理,err != nil 直接 panic 让中间件去捕获 panic
|
133
WeaponXu 2020-06-12 09:05:41 +08:00
我也想知道有没有深度的 GoFrame 用户评价一下框架,最近看到越来越多人使用。
|
134
raptor 2020-06-12 09:24:25 +08:00
只用过 gin,还可以。
另外,python 的 swagger 怎么不行了? flask-swagger 要手撸注释是麻烦一点,但不是还有 flask-restx(原 restplus)嘛,很方便的啊。 |
136
yannxia 2020-06-12 09:39:20 +08:00
@jss 这个玩法是 Go 社区忌讳的咧···https://eli.thegreenplace.net/2018/on-the-uses-and-misuses-of-panics-in-go/
|
137
leon0903 2020-06-12 09:45:20 +08:00
@yannxia 官方,社区等的确是不推荐这么做的。 但是我们是这么用的,因为你 web 应用用这个方法可以做到任意层级的返回。 你如果不这么做,就只能吧框架的 context 一层层传递下去,而且还要保证上层在返回后要 return 。 是非常痛苦的。
|
138
cbasil 2020-06-12 09:50:35 +08:00
推荐 goframe 框架,里面封装的方法开箱即用,非常方便。功能全面,是一款模块化、高性能、生产级的 Go 基础开发框架
|
140
damngood 2020-06-12 09:56:26 +08:00
go 所谓的框架真的没什么所谓, 随便挑一个不太冷门看着顺眼的就好.
|
141
namelosw 2020-06-12 09:57:55 +08:00
上来就写业务感觉还是没人打得过 Rails
|
142
someonedeng 2020-06-12 10:36:06 +08:00
gin 就行了
|
143
pliex 2020-06-12 10:53:08 +08:00 1
尝试一下我的 gin-vue-admin 吧 重点放在前台业务就好了 很香的 : https://github.com/flipped-aurora/gin-vue-admin
|
145
ccav 2020-06-12 15:37:17 +08:00
一直用 gin.
|
146
xyqhkr 2020-06-12 19:24:36 +08:00
go 的外包只推荐 GoFrame
|
147
gaigechunfeng OP @zzlettle XD 目前用 djg,听你说效率肯定没问题。 另外这个框架性能,和占用资源如何? spring 就是太耗资源
|
148
gaigechunfeng OP @brucewuio 4G 运行一个肯定是没问题。 一个 spring boot 跑起来,都搞到快 1 个 G 内存了。 我们项目慢慢多起来了,担心多了顶不住。
|
149
gaigechunfeng OP @pliex 感谢 gin-vue-admin 作者都来回帖。 我看到好几个 xd,包括网上都在说 gin 的 router 是短板。 你肯定有深入的理解,你觉得呢?
|
150
gaigechunfeng OP |
151
pliex 2020-06-16 14:33:32 +08:00
@gaigechunfeng gin 说实话是什么都没有 所以需要对它进行大量的封装和其他模块的引用 灵活性大对应带来的就是功能少 而功能齐全则带来的缺点就是业务繁多 所以 还是需要自己去权衡做出选择了
|
152
gaigechunfeng OP @hjahgdthab750 兄弟能否留个 wx,我加你,请教一些问题。非伸手党。
|
153
Martox 2020-07-10 15:56:11 +08:00
还缺人么。前端想转后端。
|