V2EX = way to explore
V2EX 是一个关于分享和探索的地方
历时 4 个月,精心设计,追求 unix 工具箱原则,一个件事只有一个 API 完成。像 SetHeader 和 SetHeaders 这种 API 不存在,只有 SetHeader。目标是成为此类项目影响力最大的一个,当然这个目标还很长远,欢迎 v 友提 issue 和 pr。
https://github.com/guonaihong/gout
1 m2276699 2 天前"目标是成为此类项目影响力最大的一个" |
4 micean 2 天前一个件事只有一个 API 完成。像 SetHeader 和 SetHeaders 这种 API 不存在,只有 SetHeader。 这种理念太偏执了吧,没办法做到“影响力最大的一个” |
5 guonaihong 2 天前@micean 这和语言生态有关系,go 也用的 unix 工具箱原则。你会发现开发起来特别爽。我现在就比较头疼 rust,干一件事,不同的语境下面,用的函数都不一样。 |
6 Immortal 2 天前我以为流式是 steam 原来是链式操作- - |
9 wysnylc 2 天前 ♥ 1apache httpclient fluent 你可以参考这个来实现 |
10 GM 2 天前恕我直言,这种语法,铁定火不起来,更别说什么“成为此类项目影响力最大的一个”了 |
13 guonaihong 2 天前@m2276699 c#不可以。不过 go 语法不复杂,看一天就可以写了。还有个 go 特别爽的是,方便交叉编译到 windows, linux,mac 上面。 |
17 sunriz 2 天前 ♥ 1初始化默认都填 nil,那如果要给参数就要填个 client 结构体的指针,填完后再在外面修改结构体内容,会发生什么? http 库本身是有意导出这些结构体成员,本身是无状态的。但是如果包了一层,还把底层暴露出去,感觉不合适,而且你也必须一直保持中间这层无状态,容易有坑 |
18 guonaihong 2 天前@sunriz 标准库里面 http.Client 需要注意的地方,他里面是个连接池。如果不停的声明新的。会导致 fd 不够用,从而报错,只要保证业务声明一个 http.Client 就行。或者传 nil。 |