Go 有不少 web 框架,很多都不是很完善,现在哪个发展的比较好?
1
notes 2017-03-02 19:39:09 +08:00 via Android
试试 beego 支持下国产
|
2
loading 2017-03-02 19:42:38 +08:00 via Android
目前在用 echo ,要很多轮子。
beego 失去了 golang 的特点,但是开箱就能用。 |
3
scnace 2017-03-02 19:43:42 +08:00 via Android
主要看你 web 框架的用途吧(话说既然发在了 go 节点 那么不是应该在 go 节点里找一找呢?之前有很多菊苣讨论过🙈
|
4
timothyye 2017-03-02 20:03:39 +08:00 via Android
revel , beego , iris , echo , gin
|
5
shidenggui 2017-03-02 20:13:02 +08:00
用过 gin 开发过不少项目,挺不错的
|
6
plqws 2017-03-02 20:14:35 +08:00
千万不要用 iris 。。。血泪教训。。。
|
7
0915240 2017-03-02 20:14:45 +08:00
gin 还不错。
|
8
janxin 2017-03-02 20:16:02 +08:00
用的 echo
|
9
realpg 2017-03-02 20:28:38 +08:00
beego: 让你找回 php 的感觉……
|
10
Muninn 2017-03-02 20:31:25 +08:00 via Android
echo
|
11
kuaner 2017-03-02 20:32:54 +08:00 via iPhone
千万不要用 iris
|
12
mocos 2017-03-02 20:33:15 +08:00 via Android
macaron
|
13
neoz 2017-03-02 20:47:13 +08:00
公司在用 gin
|
16
abujj 2017-03-02 21:08:32 +08:00 via Android
准备上 iris 。。。突然看到不推荐 我的内心啊。。。
|
17
88250 2017-03-02 21:11:21 +08:00
不用框架 :D
|
18
tkisme 2017-03-02 21:16:31 +08:00
fasthttp
|
21
kappa 2017-03-02 21:33:18 +08:00
@fuxiaohei
https://github.com/gin-gonic/gin/issues/794 这么久了没有人管,现在 javierprovecho 也没怎么花心思在项目上,感觉要坑。。 |
22
fuxiaohei 2017-03-02 21:39:42 +08:00
|
23
kappa 2017-03-02 21:42:49 +08:00
@fuxiaohei 哪有 maintainer 回复? gopkg 等官方 dep 正式发布以后恐怕就和 godeps 一样慢慢退出舞台了,现在切过去意义有多大,而且还搞个半吊子就不动了。。
|
24
fuxiaohei 2017-03-02 21:49:28 +08:00
@kappa 最后那个人是 member 啊,我看讨论的和 dep 没关系,是他们自己 import path 混乱。 canonical import paths 就是解决这个问题的
|
25
abujj 2017-03-02 21:49:35 +08:00 via Android
。那现在推荐用哪个?
|
28
kappa 2017-03-02 22:00:42 +08:00
@fuxiaohei canonical import paths 对于一般的项目意义不大,这个问题就是他们自己管杀不管埋瞎搞出来的,以前用 gopkg 最大的意义也是版本控制而不是解决依赖路径,现在这个节骨眼上再投靠过去真不合适。
|
31
fuxiaohei 2017-03-02 22:08:36 +08:00
@kappa 不是投靠过去,他的 readme 也是 gopkg.in 的 import 了,只是用 canonical import paths 可以强制 import 路径。 github.com 的 import 就编译不过去。一刀切一下把事情处理掉好了
|
35
buseni 2017-03-02 23:12:52 +08:00 via Android
beego 就类似于 thinkphp ,一天就可以撸代码了
|
36
csyangchen 2017-03-02 23:15:46 +08:00
gin 不错, 功能基本都有, 但不会太 framework 限制你的使用.
|
37
relaxgo 2017-03-02 23:22:47 +08:00 via iPhone
从 echo 转到 chi , echo api 也不稳定
|
38
aljun 2017-03-02 23:42:09 +08:00
说 iris 的。。。你们真的看过 iris 源码么。。。。
其实我个人之前用框架。。。看了源码之后发现。。。 一个 http parser 就能解决很多需求。。 |
39
aljun 2017-03-02 23:44:37 +08:00
@aljun 手急了。。。应该是 http router 。。。别的自己撸就好
[https://github.com/julienschmidt/httprouter]( https://github.com/julienschmidt/httprouter) |
40
nicevar 2017-03-02 23:50:57 +08:00
前阵子也不知道该选哪个框架,大致了解了几个然后选择了 gin ,挺好用的,花了一周时间把 ssh 的项目移植过来了
|
41
leedstyh 2017-03-03 00:11:27 +08:00
echo ,这个框架本来就有够好, go1.8 之后, go 的 web 服务可以裸跑了,不需要 nginx (之前看过一篇文章介绍的),而 echo 也提供了很多必要的功能。
|
42
Comdex 2017-03-03 00:34:53 +08:00
macaron
|
44
heimeil 2017-03-03 01:34:42 +08:00 via Android
Gorilla web toolkit
|
45
jarlyyn 2017-03-03 01:40:11 +08:00
自己写的路过。
go 本身的组建已经很强了。 搞个中间件粘一下,搞个路由,搞下缓存。 基本齐活可以玩了。 |
46
jarlyyn 2017-03-03 01:49:34 +08:00
我用过的几个组件推荐下
中间件: 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 等一些库。 普通的网站能搞的很不错了。 |
47
fundon 2017-03-03 03:46:53 +08:00
echo
|
50
wenbinwu OP @WildCat 刚发现 https://github.com/jinzhu/gorm ,感觉挺好
|
52
ETiV 2017-03-03 05:17:05 +08:00 via iPhone
gorm 文档写的不认真……特别是大小写,这个看着看着就能在脑内自动纠正了
还一问题就是,复合主键的情况下,调 AutoMigration 创建表。会报自增键只能有一个的错,导致表无法创建成功。 |
54
TangMonk 2017-03-03 08:22:06 +08:00 via Android 1
用 rust 的 rocket 呗
|
55
twm 2017-03-03 08:30:00 +08:00
千万不要用 go 开发 web 应用
|
56
Felldeadbird 2017-03-03 09:09:02 +08:00
@twm 为什么啊?不是说 go 在并发处理方面有得天独厚的能力吗?
|
57
torbrowserbridge 2017-03-03 09:17:04 +08:00
|
58
janxin 2017-03-03 09:22:08 +08:00 via iPhone
@Felldeadbird 没有脚本语言灵活
|
59
Akagi201 2017-03-03 09:40:49 +08:00
自己撸框架吧. 帖下我的
https://github.com/Akagi201/light 基于 标准的 http middleware 管理包 alice 跟 性能最强的 httprouter. 兼容 context 包. 自己撸框架的好处是, 可以自由添加底层代码, 缺什么就加什么. 而且时间紧时可以不用写测试代码, 提交到官方 repo, 通常要写测试代码, 磨合很久才能合并. |
60
8355 2017-03-03 09:48:18 +08:00
我只会 beego 所以没什么可推的 无脑推 beego
|
61
brucefeng 2017-03-03 09:50:54 +08:00
一直没搞明白, go 在做 web 的时候强点在哪里?
|
62
lgpqdwjh 2017-03-03 10:09:15 +08:00
写过一个认证服务, 用的 echo 。。。 没我 python 好用
|
63
liguoqinjim 2017-03-03 10:11:48 +08:00
faygo
|
64
qianguozheng 2017-03-03 10:13:21 +08:00
@brucefeng 说我的感觉,跟写普通程序很类似。 我本来也没有做过 web 开发,但是发现还是挺容易的
|
65
Immortal 2017-03-03 10:15:37 +08:00
现在在用 gin 吧
推荐 echo 和 gin go 写 web 建议还是做 api 为主 前后分离的做 像传统 php 或者其他那样耦合的 go 也不算特别合适 官方模板库挺不好用 |
66
orderc 2017-03-03 10:25:42 +08:00
macaron
|
67
janxin 2017-03-03 10:35:08 +08:00 1
@brucefeng 跟脚本比不复杂多少但是提供更高的性能,更容易写出高吞吐 API 。不过和页面紧耦合就是痛苦了,所有的静态语言通病吧。
|
69
nicevar 2017-03-03 10:38:32 +08:00 1
@brucefeng 接触 go 没多久,之前 web 都是用 java 做的,初步感觉 go 简洁易用,我那个笨重 ssh 项目后台管理用 java+ExtJs , api 部分现在改用 go 了,开发速度快多了,个人不太喜欢 python 的框架,依赖有时候很乱,发布也不太方便
|
70
jarlyyn 2017-03-03 10:40:14 +08:00 1
@brucefeng
凭心而论, go 写 web 不算特别强,但也不算很差。 主要是 web 大部分的时间都和数据库 /网络传素打交道。 go 的缺点主要是轮子少。文档太简略,动不动要爬源代码。 优点是部署简单,静态语言。 |
72
kappa 2017-03-03 12:32:16 +08:00 1
|
73
simo 2017-03-03 12:40:30 +08:00
参考 github star 。了解下每个框架的优缺点,找到适合自己业务的。
目前个人大部分小项目自己撸。 稍大些的用 gin 和 beego 。 |
74
pacoyang 2017-03-03 14:45:59 +08:00
gin!
|
75
zzWinD 2017-03-03 15:01:04 +08:00
|
76
strwei 2017-03-03 17:11:53 +08:00
逼购
|
77
orvice 2017-03-03 18:25:49 +08:00
gin
该有的都有,不该有的也没有 :) |
79
leedstyh 2017-03-03 21:56:16 +08:00 1
@timothyye 就是不需要 nginx 反代, go 的 web 程序直接跑在生产环境。
https://news.ycombinator.com/item?id=13213902 当然,绑定域名这种事,肯定可以,这个是 echo 的做法 ( https://echo.labstack.com/cookbook/subdomains),其实其他的框架也可以 |
80
pathbox 2017-03-03 22:24:55 +08:00
net/http 然后加需要的扩展就够了。 如果真要追求性能, httprouter 和 fasthttp 似乎不错,不过在生产环境还没尝试过
|
81
timothyye 2017-03-03 23:17:10 +08:00
go 的模板渲染感觉不是强项,所以比较好的方案是前后端分离, go 只负责提供后端 API 接口,这绝对是强项,哈哈
|
83
Unknwon 2017-03-05 01:17:28 +08:00
|
84
myself659410 2017-03-07 13:49:33 +08:00
正在试看框架
|