duke-git / lancet

A comprehensive, efficient, and reusable util function library of Go.
https://www.golancet.cn/en/
MIT License
4.42k stars 443 forks source link

你这神操作, 叹为观止. #231

Closed 888go closed 1 month ago

888go commented 1 month ago

请教你下, 你是怎么认为直接访问网站获取ip就是会稳定的?

// GetPublicIpInfo return public ip information // return the PublicIpInfo struct. // Play: https://go.dev/play/p/YDxIfozsRHR func GetPublicIpInfo() (*PublicIpInfo, error) { resp, err := http.Get("http://ip-api.com/json/") if err != nil { return nil, err } defer resp.Body.Close()

body, err := io.ReadAll(resp.Body)
if err != nil {
    return nil, err
}

var ip PublicIpInfo
err = json.Unmarshal(body, &ip)
if err != nil {
    return nil, err
}

return &ip, nil

}

888go commented 1 month ago

没见过哪个工具库会这样写, 这种业余的你自己玩玩就好了. 就这能有什么稳定性?

cannian1 commented 1 month ago

那我问你,你有什么更好做法在 RFC3489 和 RFC5780 定义的多种NAT类型下获取到公网ip呢?以及你可以去对比其他的库和解决方案,没见过是你见得少了。

888go commented 1 month ago

那我问你,你有什么更好做法在 RFC3489 和 RFC5780 定义的多种NAT类型下获取到公网ip呢?以及你可以去对比其他的库和解决方案,没见过是你见得少了。

没有稳定的不提供就是了. 像样点的库都不会去实现这种不稳定的功能. 你可以列举一个比较牛逼的库这么实现的出来我看看. go的标准库会有这样的神操作?

cannian1 commented 1 month ago

1.实现不稳定的功能:像 https://github.com/golang/go/issues/67401 这里提到的,很多第三方库过度依赖了 linkname,甚至你去看源码,有的库已经被写到源码里批评了,像字节解析JSON的库就用上了 linkname 特性,那么等go升级版本,这些第三方库就不再兼容新版本。

另外还有个提案上写着将来 go1.24 需要 Linux 3.17 kernel ,也就是不支持 centos7.x 的默认内核。https://github.com/golang/go/issues/67001 ,就是依赖了Linux 3.10 的 getrandom(2)。你大可以在那个提案下面要求 go 官方团队不要依赖这个函数来继续兼容。

2.按你的逻辑标准库没有的就不实现了?开源就是免得重复造轮子,用户有需求并且能够实现就可以了,k8s 的CPU调度附近有个四舍五入的工具函数也会丢精度,2038年时间戳用尽的问题很多业务系统也都不考虑。你要有建设性的 PR 欢迎提交,但是不要否定其他用户的需求,不要为他人做决定。你要是觉得不稳定你就别用这个功能,代码都是开源的,用户可以自己决定用不用。

888go commented 1 month ago

1.实现不稳定的功能:像 golang/go#67401 这里提到的,很多第三方库过度依赖了 linkname,甚至你去看源码,有的库已经被写到源码里批评了,像字节解析JSON的库就用上了 linkname 特性,那么等go升级版本,这些第三方库就不再兼容新版本。

另外还有个提案上写着将来 go1.24 需要 Linux 3.17 kernel ,也就是不支持 centos7.x 的默认内核。golang/go#67001 ,就是依赖了Linux 3.10 的 getrandom(2)。你大可以在那个提案下面要求 go 官方团队不要依赖这个函数来继续兼容。

2.按你的逻辑标准库没有的就不实现了?开源就是免得重复造轮子,用户有需求并且能够实现就可以了,k8s 的CPU调度附近有个四舍五入的工具函数也会丢精度,2038年时间戳用尽的问题很多业务系统也都不考虑。你要有建设性的 PR 欢迎提交,但是不要否定其他用户的需求,不要为他人做决定。你要是觉得不稳定你就别用这个功能,代码都是开源的,用户可以自己决定用不用。

你要强词夺理, 谁拿你有办法, 你咋理解随意. linkname至少当前能用, 只是被滥用. 你这直接取ip-api.com概念能一样? 你多取几次, 网站waf拦截了, 你取个锤子? ip-api.com网络抽风呢? 本机网络抽风呢? 就你这理解力.

888go commented 1 month ago

你举例的跟不稳定跟这有什么关系? 如果linkname叫不稳定, 你这直接取ip-api.com叫极其不稳定.

888go commented 1 month ago

个人库, 你根据业务需求咋玩咋实现, 都合理. 想要做成一个"知名公共库", 这么实现? 说你还不乐意. 你喜欢抬扛你继续抬扛, 不回复你了.

duke-git commented 1 month ago

@888go,你如果认为这个实现有问题,可以提出讨论或者你的解决方案。一开始就恶意评论,如果不是有蓄意的目的就是能力段位比较低。从你的评论看,你犯了一些逻辑思维错误和批判性思维错误。这个回复已经浪费时间了,自生自灭吧。

888go commented 1 month ago

@888go,你如果认为这个实现有问题,可以提出讨论或者你的解决方案。一开始就恶意评论,如果不是有蓄意的目的就是能力段位比较低。从你的评论看,你犯了一些逻辑思维错误和批判性思维错误。这个回复已经浪费时间了,自生自灭吧。

写成你这吊样, 你段位高. 高极了.

TAOTAO-WEB commented 3 weeks ago

写成你这吊样, 你段位高. 高极了.

@888go it is the first time to see such person like you only vent your emotions but have no contribution to the community.The community author has no earnings from Open source projects directly, you can say your suggestion but your words was so impolite that I really wonder you r not adult or do not learn the moral character from the school