并非伸手党,不为别的,纯粹引战~~
目前我们的项目都是 springboot 一把梭,无奈太吃资源,4G 内存的服务器,跑不了几个项目。 当然主要是为了折腾,有心想尝试一下 go lang 的 web 框架玩一玩。
随便搜了一下,发现 go 的框架太多了,大而全的,小而美的,国产的,进口的,太多了。这么好的选型素材不来 V 站水一贴,简直暴殄天物。
我们的需求:中小型项目(做外包,接私活),要求上手快,出活块,然后该有的权限管理,jwt 都要有。尽量轻型吧,少占资源。
好了,恳请大家推荐一下,我会用心比较。谢谢
|      1NCZkevin      2020-06-11 11:07:55 +08:00  1 还是推荐 gin 吧,生态挺好的,很快就能上手 | 
|  |      2pinktu      2020-06-11 11:09:43 +08:00 gin-vue-admin | 
|  |      3u823tg      2020-06-11 11:10:42 +08:00  2 gin 吧,java 的不适合中小项目。  或者你们可以换 dotnet core | 
|  |      4haoji      2020-06-11 11:11:35 +08:00 gin | 
|      5raincode      2020-06-11 11:11:44 +08:00 还招人不? | 
|      6huanleyan      2020-06-11 11:13:00 +08:00 iris | 
|      7liaokylin2v      2020-06-11 11:14:11 +08:00 via Android beego 吧,gin 是优秀但是需要有人做很好的扩展,如果能力不强很容易用坏的 | 
|  |      8Mohanson      2020-06-11 11:16:03 +08:00 via Android  1 net/http 标准库 | 
|  |      9gaigechunfeng OP 1-4 楼都推荐 gin,我几乎要确定要 gin 了。     哈哈~ | 
|  |      10gaigechunfeng OP @raincode 我们也是兼职搞得。   几个公司同事一起。 目前还行,项目能应付的过来。   后面搞不赢,会考虑也找人帮忙做。 | 
|  |      11gaigechunfeng OP @pinktu 到位!老铁怎么知道我是 vue 的技术栈啊。    是不是有开源的库,我弄到本地,硬学一下。  :D | 
|  |      12qW7bo2FbzbC0      2020-06-11 11:21:56 +08:00  2 @u823tg @ gaigechunfeng 一开始我也找 go 的 web 框架,后来转向 dotnetcore,然后自己鼓捣了验证和 consul 注册两个小轮子,学习了 NPoco,总的来说,最起码 swagger 文档方面 spring 和 netcore mvc 吊打 python 和 go web 。而且 netcore 可以编译成单文件,和 go 一样到处部署,有一点就是对没有 root 权限的 cent6 部署不太友好,因为要额外的依赖包 另外我觉得 web 不是 go 的最佳赛道 | 
|  |      13gaigechunfeng OP @u823tg gin 的发展稳定不?   学期曲线如何。 | 
|  |      14Vegetable      2020-06-11 11:23:02 +08:00  1 go 的框架多吗?能打的就两个,gin/beego,前者对标 flask,后者对标 Django/Spring Boot 比起 Java 早已被统一的情形是多一些,实际上真的很好选。 Beego 的好处是和 Java 体系的模型更像一点,可以看一看 | 
|  |      15gaigechunfeng OP @hjahgdthab750 这有点超纲。其实我们团队用过 spring 和 flask 的。   flask 之前是学习用的,项目只是跑起来,还没商用。后来的项目都是 spring 了。  但就是资源消耗太多,而且看到网上经常 go 和 java 对比,所以才考虑尝试一下 go 。 | 
|  |      16janxin      2020-06-11 11:26:28 +08:00  3 Go 都比较轻量,轻量到简陋。国内外包出活可以考虑 GoFrame,把常用的都塞进去了,臃肿是真的胖,反正外包嘛,维护不是什么重点,出活需要快 | 
|  |      17wysnylc      2020-06-11 11:28:39 +08:00 spring boot 4g 完全够用何况你们还不是多大的项目,建议多查查怎么优化 | 
|      18pwli      2020-06-11 11:28:58 +08:00 @hjahgdthab750 fastapi 不服 | 
|  |      19fiypig      2020-06-11 11:29:13 +08:00 如果是外包的话,那我只推荐 beego 了 , 你们可以根据框架 ,整个框出来 ,中间件什么的, 到时候套一下就行 . 但是我不喜欢 beego 就是 ,我还是习惯用 gin... | 
|  |      20gaigechunfeng OP @Vegetable 兄弟这么一说我理解了。gin 就是小,轻,自由度高,beego 就是大而全。   我们从 sb 转过来,可能 beegon 上手会快点。    另外多问一句,服务跑起来,beego 的资源消耗会不会比 gin 大很多。 现在倾向于 beego 了,哈哈 | 
|  |      21loading      2020-06-11 11:30:39 +08:00 via Android  2 gin goframe 二选一,一个轻,一个重。goframe 是国人产品。 | 
|  |      22gaigechunfeng OP @wysnylc 4G 是跑一个项目是够,跑多个估计有点顶不住。    甲方都要我们做成 saas 的架构了,就是为了节省资源。性能优化,调优目前不是我们的主要目标,也没有时间沉下来去仔细研究这些。惭愧,见笑了,兄弟 | 
|      23dodo2012      2020-06-11 11:33:08 +08:00  1 gin,go 的不要选重框架, | 
|  |      24gaigechunfeng OP | 
|  |      25fengyj      2020-06-11 11:38:45 +08:00 gin, iris, echo... 推荐这 3 个 | 
|  |      26qW7bo2FbzbC0      2020-06-11 11:44:16 +08:00 | 
|  |      27qW7bo2FbzbC0      2020-06-11 11:45:57 +08:00 @gaigechunfeng flask 还行吧,插件加多了就成了 django 了,但是会比 django 看起来还不规范。。。 | 
|  |      28dog82      2020-06-11 11:49:58 +08:00 gin beego 二选一,抛硬币决定吧 | 
|  |      29gaigechunfeng OP @dog82 哈哈,玄学决定了。    这两个项目对微信后台认证,支付那一套应该都有成熟的支持吧。我们主要做 wx 小程序。 | 
|  |      30u823tg      2020-06-11 11:57:43 +08:00 @hjahgdthab750 #12  用 docker 吧,dotnet core 对 docker 支持的挺好 | 
|      31ahsjs      2020-06-11 11:59:15 +08:00 gin | 
|  |      32konakona      2020-06-11 11:59:26 +08:00 其实 Go 的 Web 框架是真的 Web 框架,类似 Orm 这些还是会用其他包来解决。比如 Go 用的 Gorm 也是一朵「传奇」,问题还挺多的。 Web 框架主要是解决了路由、方法封装、表单处理的一些指向性的标准,仍然需要具备一定的 Golang 语言能力,比如类型处理等等,还是 Golang 的老本行。 上手速度来看,Beego 绝对是最快的,等于换了个语言,还是沿用原来的开发思路。 Gin 的话,稍微理解下也是不错的。 我目前用的 Gin 。 | 
|  |      33Hanggi      2020-06-11 12:00:07 +08:00 Go 只有两个框架 Gin 和 Echo 。别的可以忽略。 | 
|  |      34metrue      2020-06-11 12:00:19 +08:00 via iPhone Gin 即可. | 
|  |      35stach      2020-06-11 12:00:36 +08:00  10 go 不适合做 web | 
|  |      36agee      2020-06-11 12:00:45 +08:00 via iPhone 去看一眼 beego 的项目吧你就放弃的,还是 gin,echo | 
|  |      37konakona      2020-06-11 12:01:12 +08:00  1 @gaigechunfeng 这种微信开发的需求,在 Go 领域里,完全不需要考虑“程序用什么 Web 框架”,因为都是第三方的包…… 都能用呀。 比如 beengo 里可以用 gin 的一些包。而 gin 也会用 beengo 里的一些包。就是这么随意。 | 
|  |      39pinktu      2020-06-11 12:04:47 +08:00 @gaigechunfeng 你去 GitHub 搜索就有了,很好的一个框架 | 
|  |      40windfarer      2020-06-11 12:05:55 +08:00 go 不适合做外包 | 
|  |      41to2false      2020-06-11 12:06:35 +08:00 这需求描述,没必要用 go 啊,我觉得 php 就很合适,短平快 | 
|  |      42pinktu      2020-06-11 12:07:11 +08:00  1 @gaigechunfeng 你需要的应该是一个半成品项目二次开发,他们推荐都是框架 | 
|  |      43JB18CM      2020-06-11 12:13:19 +08:00 go 不适合开发 | 
|      44leedong00      2020-06-11 12:18:57 +08:00 php 符合你 | 
|  |      45tlday      2020-06-11 12:28:21 +08:00 以前我也喜欢小而美的框架,后面发现一大堆必须的插件都已经很少更新或者不更新导致跟最新的框架主版本不兼容也没有好的替代品,整个项目的插件兼容性和版本一团浆糊,经常需要改插件源码以后,我就倒向大而全了。点名 flask 和 webpack 。 | 
|  |      46monospace      2020-06-11 12:29:49 +08:00  5 朋友,PHP 考虑下不。。。 | 
|  |      47tlday      2020-06-11 12:30:20 +08:00 还有 sinatra | 
|  |      48labulaka521      2020-06-11 12:35:58 +08:00 via iPhone beefo 基本不维护了 | 
|      49Hellert      2020-06-11 12:36:57 +08:00 以前用 echo, 现在直接用 net/http 标准库 | 
|      50xsephiroth      2020-06-11 12:39:08 +08:00 via iPhone Echo 以前用 gin 的路由太不爽了 | 
|      51ccog      2020-06-11 12:43:03 +08:00 php 考虑下 | 
|  |      52qloog      2020-06-11 12:47:28 +08:00 首推 gin,其次 echo, 用 gin 主要是很多公司在用,大厂小厂都有用,碰到问题好解决,但是用 gin 也需要自己撸很多东西,想快速上手可以看看这个,可以直接拿来开发了,[snake]( https://github.com/1024casts/snake) | 
|  |      53gaigechunfeng OP @monospace 兄弟,我对 php 有误解。  我还是到别的摊位看看   {笑哭} | 
|  |      54gaigechunfeng OP @pinktu 嗯嗯,对的。最好有开源的项目,mall,或者 admin 这种。   适合二开的,直接拿过来硬撸的。 | 
|  |      55lixuda      2020-06-11 12:49:17 +08:00 @gaigechunfeng flask 不行吗? | 
|      56sunxiansong      2020-06-11 12:54:28 +08:00 echo 和 gin 中选了 echo - 代码似乎更紧凑一点,看上去比较简单,比较好上手研究 - echo 的统一错误处理机制更方便 - echo 的 release 节奏比 gin 更频繁一点 -gin 的中间件更丰富一点,不过要加其他依赖,echo 自带了一些中间件 | 
|  |      57gaigechunfeng OP @lixuda 之前我们用 jquery 的时候,用的 flask,也没有感觉什么不行。但后面基于一个 spring boot 的开源项目做的二开,就转到 sb 了。  sb 确实比 flask 省事很多。   反正我们主要是看二开的项目{笑哭} | 
|  |      58mengyx      2020-06-11 13:03:25 +08:00 via Android 我一开始用 gin,后来换了 echo,用的舒服。 确实,go 的话好像没有大框架的习惯,要什么功能引入相应的包就好了。 | 
|  |      59natforum      2020-06-11 13:04:54 +08:00 gin, iris 二选一 | 
|  |      60cz5424      2020-06-11 13:06:31 +08:00 via iPhone Go 不适合做 web 是什么梗,看团队成员技能点选语言最重要,web 框架都是轮子。flask 做小程序,没啥不好的。你说得那些附带的都不是 web 框架提供的,都是第三方包。 | 
|      61joesonw      2020-06-11 13:07:02 +08:00 没人推 macaron 吗? 一般的业务对于框架性能来说其实是不挑剔的. macaron 注入的易用性还是很棒的. | 
|  |      62sagaxu      2020-06-11 13:08:31 +08:00 via Android  3 Java 换 Go 省不了多少内存,原来能跑 1 个的换 Go 能跑 2 个,多付出的人工成本,能买很多内存 | 
|  |      63Hanggi      2020-06-11 13:09:41 +08:00 选框架看 stars 说话,国内项目根据情况打折扣。比如: beego 的星星数:stars/3 就好了, Vue 的星星数:stars/5 就比较合理了。 | 
|  |      64yincrow      2020-06-11 13:09:56 +08:00  1 等你一个月后来发贴,标题为你想好了:用 Go 做业务开发太痛苦了,不要用 go 写 web | 
|  |      65prenwang      2020-06-11 13:36:29 +08:00  1 go 有没有类似 mybatis 的模块 | 
|  |      66yahon      2020-06-11 13:40:03 +08:00 django + DRF 不是外包首选吗 | 
|  |      67gaigechunfeng OP @prenwang 对,这个我也想问。目前用的就是 mybatis | 
|  |      68johng      2020-06-11 13:47:19 +08:00 @gaigechunfeng 如果称得上框架的话,推荐 GoFrame: https://goframe.org ,可以将她类似于 PHP 中的 Laravel,Java 中的 SpringBoot 或者 Python 中的 Django 。GoFrame 框架虽然开源时间较晚,不过发展比较快,口碑不错。 | 
|  |      69gaigechunfeng OP @sagaxu 兄弟你要这么说,那我就不困了啊。其实 spring 真的已经是出活很快的了。    要是升不了这么多内存,我发帖意义何在。。。 | 
|  |      70gaigechunfeng OP @yincrow 哈哈,不过很有可能我会发帖:go 选型没通过,还是继续 spring boot 撸了 | 
|  |      71wzw      2020-06-11 13:50:10 +08:00 我在用 GoFrame, 挺好,非常好。 | 
|      72JasperYanky      2020-06-11 13:56:07 +08:00  1 外包  django 一梭子,感觉学一次能写 10 年 | 
|  |      73chinvo      2020-06-11 14:01:23 +08:00 via iPhone  1 如果之后不打算用 go 了建议看看 .net core,比 Java 高到不知道哪里去了 | 
|  |      74gaigechunfeng OP @JasperYanky 老铁不早说,我们团队,误入了 spring boot 的坑。Django 运行起来,吃资源吗? | 
|  |      75gaigechunfeng OP @chinvo 真的吗?兄弟说这么诚恳,我现在就去了解一下。    容易上手吗 | 
|  |      76airplayxcom      2020-06-11 14:06:25 +08:00  1 上手快,出活块? php 不香吗? | 
|  |      77mosesyou      2020-06-11 14:08:35 +08:00 java 转 go 的可以选 beego,我们之前用过,然后加上 go-kit 的 consul 服务注册发现之类的功能就差不多了 | 
|  |      78OMGZui      2020-06-11 14:08:36 +08:00 (做外包,接私活) php 多香啊 | 
|      79JasperYanky      2020-06-11 14:08:47 +08:00 @gaigechunfeng 公司目前在用 go java 和 python django ,如果只是纯外包或者小项目,django 应该是最适合的 | 
|  |      80gaigechunfeng OP @chinvo 朋友介意留个 wx 吗?我加你交流一下这个.net 啊 | 
|  |      81gaigechunfeng OP @hjahgdthab750 朋友介意留个 wx 吗?   交流一下,搞不好我要学习.net core 了 :D | 
|  |      82chinvo      2020-06-11 14:10:05 +08:00 via iPhone  1 @gaigechunfeng #74  同样的 MVC hello world, .net 占资源比 Java 少太多。 至于执行效率、响应速度等问题,很多公开的 benchmark 都有做对比。 LinQ 和 官方 ORM 框架 EF 用起来很爽,能覆盖大部分业务逻辑对数据操作的需求。 生态方面也不差,nuget 上的活跃包很多,前些年还需要偶尔造轮子,这两年基本上各种需求都能找到可用的包了。 | 
|  |      83gaigechunfeng OP @airplayxcom 我顶,难道比 spring 还快? | 
|  |      84Gja5kx2zjf92LLin      2020-06-11 14:37:12 +08:00 我学的 iris,GO 做 MVC 还是太费劲了 | 
|      85missdeer      2020-06-11 14:37:29 +08:00 轻一点的 gin,重一点的 beego 问题是前不久我看到一个评测说 gin 的性能还不如 beego,有点反直觉 | 
|  |      86chinvo      2020-06-11 14:38:07 +08:00  1 | 
|  |      87airplayxcom      2020-06-11 14:41:34 +08:00 @gaigechunfeng 复制粘贴一把梭 你说快不快 | 
|      88dhssingle      2020-06-11 14:46:02 +08:00  1 Asp.Net Core + ABP VNext 开发效率杠杠的。   性能也比 Go 、Java 那几个常用框架强很多。 https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=composite  | 
|  |      89lasuar      2020-06-11 14:46:04 +08:00 iris 、gin √ beego × | 
|  |      90lasuar      2020-06-11 14:56:06 +08:00 说下我个人选择一个 web 框架重点参考的几个因素: - issues opened - features - documents - start-cases - stars 基于以上因素,个人认为 gin 稍弱于 iris 。 | 
|  |      91zorui      2020-06-11 14:56:57 +08:00 何不 继续 Java vert.x  Quarkus 资源都比较少。 | 
|  |      92fengerzh      2020-06-11 15:03:07 +08:00 iris 简单到连路由都不用写,直接 PostSomeroute 就可以用 /someroute 访问了 | 
|  |      93keepfun      2020-06-11 15:12:43 +08:00 gin-vue-admin 应该比较适合你 但是这个偏 admin | 
|  |      94my3157      2020-06-11 16:06:29 +08:00 自己用 martini 魔改的框架, 很多业务相关的都用中间件实现了, 复用率很高, 如果不是特别 care 性能, martini  或者基于 martini 魔改的 macaron 都可以 | 
|  |      95liuxey      2020-06-11 16:07:46 +08:00 如果单纯的因为内存问题,我也建议不要换 Springboot 一把梭下去,付出的时间成本和人员成本 可以买一堆内存条了 | 
|  |      96my3157      2020-06-11 16:09:24 +08:00 比如修改用户邮箱的代码是这样的 ``` m.Patch("/user/email", user.CheckEmail, user.CheckToken, user.EmailNotExist, user.Detail, user.UpdateEmail) ``` | 
|  |      97gxm44      2020-06-11 16:16:52 +08:00 echo + 1 | 
|  |      98qiubaowei      2020-06-11 16:30:05 +08:00 node 行吗 | 
|  |      99ningyu1      2020-06-11 16:49:52 +08:00 强烈推荐 gin,自由度好、社区完善 | 
|  |      100Hanggi      2020-06-11 17:52:19 +08:00 via iPhone 感觉 go 语言是一个遇强则强,遇弱则弱的语言。 强的可以一 go 到底,弱的就连业余都写不了。 |