
下面聊的是 gout,gout 是 go 里面第一个流式 http client。下面是 feaute 列表,数据编解码这块基本做到极致,引入流式概念,既可以 core 很小巧,组合起来也很强大(benchmark 是第一个 filter 函数)。为啥关注度不高?还有哪些需要完善的地方?
https://github.com/guonaihong/gout

1 wa8n 2019-12-10 09:15:43 +08:00 多在 v2 发帖子 |
2 zunceng 2019-12-10 09:18:54 +08:00 集成 grpc ? |
3 popbones 2019-12-10 09:34:24 +08:00 via iPhone 文档改成英文的 |
4 reus 2019-12-10 11:04:59 +08:00 via Android 你解决的根本不是痛点,没有 |
5 shunia 2019-12-10 11:04:59 +08:00 优秀的英文文档呗,想热得靠 pr,国人 pr 的热情太低。 |
6 guonaihong OP @popbones 这个版本加上。 |
7 guonaihong OP @reus 哈哈,你的回答最有意思,上次看你怼过几个项目,有的最后 700star,有的 1w star。 |
8 lishunan246 2019-12-10 12:40:09 +08:00 给一个不用 net/http 和 valyala/fasthttp 的理由? |
9 chennqqi 2019-12-10 13:04:25 +08:00 net/http 足够好了,另外不知道你说的流式是啥意思 |
10 zhaogaz 2019-12-10 13:14:08 +08:00 哎,有很多 star 高的项目都是垃圾。。。 |
11 guonaihong OP @lishunan246 用标准库可以慢慢的做一件事,用库可以更爽更快的做一件事。这个看个人喜好了。 |
12 guonaihong OP @zhaogaz 这个没法回答你。做开源项目的人都不喜欢评论别人的开源项目是垃圾,知道几千几万行的撸不容易。如果遇到问题一般直接提 pr 帮原作者完善下。 |
13 gesse 2019-12-10 13:37:45 +08:00 star + watch 了 |
14 stanlry 2019-12-10 13:38:18 +08:00 via Android 建议看看 go-resty,很早就有了 |
15 PiersSoCool 2019-12-10 13:39:08 +08:00 流式调用的好处在哪里?更可读?更简洁?我的确没觉得更爽,net/http 代码可读性肯定比你这好一些,因为他没有封装流式的方法,这对于业务来说是无关的代码。 所以那解决了 net/http 什么问题?我不知道。所以对标的是什么库,优缺点呢? 生产环境可使用吗?崩溃了谁能去及时解决?没人想给自己造成麻烦。 我怎么从 net/http 迁移?全部重写?那是不可能的。 |
16 python 2019-12-10 13:54:18 +08:00 via Android 支持批量传 url slice 去请求拿响应结果不? 错误处理呢? 重试机制有吗? 相比 fasthttp 性能如何? 畸形页面的编码问题? gbk ? |
17 guonaihong OP @PiersSoCool 我下班后回答下,都是挺好的问题。 |
18 guonaihong OP @python 我下班后回答,不错的建议。 |
19 exceptionplayer1 2019-12-10 14:24:14 +08:00 不错,学习一下 |
20 woostundy 2019-12-10 14:24:32 +08:00 支持。 我觉得需要个最佳实践项目,来告诉大家用这个库的场景。 |
21 matepi 2019-12-10 15:00:34 +08:00 主要还是流式调试起来反人类……自己小玩玩可以,大逻辑项目不敢上 |
22 lishunan246 2019-12-10 15:08:27 +08:00 via Android @guonaihong 在什么场景下你的 gout 比标准库和 fasthttp 更爽更快? |
23 guonaihong OP @stanlry gout 实现的代码现在已经比 go-resty 多,很多功能 gout 有,go-resty 没有,全面超越还是有可能的。go-resty 的立意还是很不错的,不是 python 的 request 的搬砖项目。可惜作者没有好好设计。 |
24 guonaihong OP @lishunan246 抱歉,我上面说的快是开发效率。这点应该没有争议。 标准库里面的 net/http 至今也没有项目可以撼动其地位。fasthttp 支持 http2 还没成功,作者已经去玩时序数据库了。。。 |
25 guonaihong OP @PiersSoCool 这里面的问题其实很好回答,我讲下自己的事情,以前我们 http server 都是基于标准库的,后面尝试 gin 确实可以提高开发效率就慢慢铺开,在用的过程就提提 pr 优化下。用标准库开发绝对问题,但是开发效率不是最优解。这需要你那么自己权衡。这对于选择任何开源项目都适用。 |
26 guonaihong OP @PiersSoCool 忽略上一条,看这条。这里面的问题其实很好回答,我讲下自己的事情,以前我们 http server 都是基于标准库的,后面尝试 gin 确实可以提高开发效率就慢慢铺开,在用的过程就提提 pr 优化下。用标准库开发绝对很难遇到问题,但是开发效率不是最优解。这需要你那么自己权衡。这对于选择任何开源项目都适用。 |
27 guonaihong OP @python 字符编码不会做,这个点能不到极致,就给更喜欢这点的童鞋做。gout 只做作者能轻松 hold 得住的点,有问题可以快速解决,保守估计再撸 2-3w 行代码还是可以驾驭得住的。 批量 url 和重试我一直不想加。重试在我遇到的项目里面没有 fast fail 策略来的好使。有兴趣的话,可以在 gout 的 issue 上面一起讨论下。 |
28 guonaihong OP |