首页   注册   登录
 fengkx 最近的时间轴更新

fengkx

V2EX 第 309446 号会员,加入于 2018-04-17 19:05:16 +08:00
fengkx 最近回复了
39 天前
回复了 fengkx 创建的主题 分享创造 造的一个轮子 Telegram RSSBot in Node.js
44 天前
回复了 fengkx 创建的主题 分享创造 造的一个轮子 Telegram RSSBot in Node.js
@ifwangs 更喜欢一个应用做好一件事。Telegram 的优势在于它作为一个 IM 的及时性和通知能力。还有就是可以用在群聊之中做通知提醒,还有在群聊中订阅群主题相关的 feed 增加讨论度的功能。 所以我多在 Bot 里订阅通知类或者低频更新的博客。特别不喜欢微信公众号那种方式。就是想方设法把用户留在应用内,公众号阅读时如果想要回消息只能用浮窗这种方式。我个人认为很奇葩很不好用。阅读还是用浏览器的好。
44 天前
回复了 fengkx 创建的主题 分享创造 造的一个轮子 Telegram RSSBot in Node.js
44 天前
回复了 fengkx 创建的主题 分享创造 造的一个轮子 Telegram RSSBot in Node.js
@B1ock 貌似是因为 imgur 被墙。我这里能看到的。
45 天前
回复了 fengkx 创建的主题 分享创造 造的一个轮子 Telegram RSSBot in Node.js
两有一处小改进忘记了。
1. 按行分割的链接批量订阅
2. 通过 rel="alternate" type="application/atom+xml" 自动识别并订阅。 例如 v2ex.com 中有 <link rel="alternate" type="application/atom+xml" href="/feed/tab/tech.xml" /> 使用 /sub https://www.v2ex.com 会自动订阅到 https://www.v2ex.com/feed/tab/tech.xml
46 天前
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
@fengkx
@winterssy 单位看反了 /(ㄒoㄒ)/~~。看到了多一次内存分配下意识地看错了
46 天前
回复了 winterssy 创建的主题 分享创造 reqwest - 简单,易用的 Golang 网络请求库
支持一下~

学习了代码。然后我想到一个问题。JSON()方法为什么不直接用 json.Decoder 呢。基于这个想法试了一下。


JSON 方法用 Deocder 可以这样
```go
func (r *Response) JSON(v interface{}) error {
dec := json.NewDecoder(r.R.Body)
return dec.Decode(v)
}
```

Bench 代码

```go
func BenchmarkResponse_JSON(b *testing.B) {
type testData struct {
JSON struct {
Msg string `json:"msg"`
Num int `json:"num"`
} `json:"json"`
}
ts := httptest.NewServer( http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
dec := json.NewDecoder(r.Body)
var data testData
dec.Decode(&data.JSON)
enc := json.NewEncoder(w)
enc.Encode(data)
}))
resp := reqwest.Post(ts.URL).
JSON(
reqwest.Data{
"msg": "hello world",
"num": 2019,
}).
Send().
EnsureStatusOk()
b.ResetTimer()
for i:=0;i<b.N;i++ {
var retData testData
resp.JSON(&retData)
}
}
```

结果如下
## Unmarshal
```plain
$ go test -v -run="none" -bench="BenchmarkResponse_JSON" -benchtime="3s" -benchmem
goos: linux
goarch: amd64
pkg: github.com/winterssy/reqwest
BenchmarkResponse_JSON-4 5000000 959 ns/op 544 B/op 2 allocs/op
PASS
ok github.com/winterssy/reqwest 5.895s
```
## Decoder
```plain
$ go test -v -run="none" -bench="BenchmarkResponse_JSON" -benchtime="3s" -benchmem
goos: linux
goarch: amd64
pkg: github.com/winterssy/reqwest
BenchmarkResponse_JSON-4 10000000 713 ns/op 896 B/op 3 allocs/op
PASS
ok github.com/winterssy/reqwest 7.758s
```

跟我设想的不太一样。还以为 Decoder 会更快。为什么会这样呢?
2018-10-01 21:37:13 +08:00
回复了 FakeLeung 创建的主题 分享发现 对 bootcdn.cn 无语了。
现在会 301 到 cdnjs 了
2018-10-01 15:03:54 +08:00
回复了 FakeLeung 创建的主题 分享发现 对 bootcdn.cn 无语了。
一大批油猴脚本 GG
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1595 人在线   最高记录 5043   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.3 · 14ms · UTC 00:01 · PVG 08:01 · LAX 16:01 · JFK 19:01
♥ Do have faith in what you're doing.