Go编写的代码惨遭严厉批评,问题出在哪?

2026-05-22 21:250阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计2066个文字,预计阅读时间需要9分钟。

hello 家长,我是小楼。不知道家长还记不记得,我上次找到的一个Go的Benchmark执行会超时的Bug。就是这篇《我好像发现了一个Go的Bug?》。之后我就向Go提交了一个PR进行修复,本以为“

hello大家好,我是小楼。

不知道大家还记不记得我上次找到了一个Go的Benchmark执行会超时的Bug?就是这篇文章《我好像发现了一个Go的Bug?》。

之后我就向Go提交了一个PR进行修复,本想等着代码被Merge进去,以后也可以吹牛说自己是个Go的Contributor,但事情并不顺利,今天就来分享一下这次失败的代码提交。

第一次提交

在我意识到Bug时,就迫不及待想去修复,于是有了这一次提交。

在说代码前,先说点关于Go仓库的问题,Go并没有直接托管在github,而是自建的Gerrit Code Review,github上只是个镜像仓库,所有在github上提交的issue和代码都会被一个机器人搬运到Gerrit上。

而且Go对提交代码的要求是必须关联一个issue,于是我就提了一个,自问自答了属于是。

描述了一下遇到的问题,但隔天被一位大佬认为是重复问题,并且关闭了这个issue

但我点进去仔细看了下,和我说的应该没有关系,他们讨论的是单测超时不生效的问题,于是我狡辩了一下。

果然狡辩是有用的,另一位大佬同意我的观点,于是我给他点了个赞,但他也指出我的代码存在问题。

下面进入今天的正题,为了便于讲解,我先把有问题的代码段摘出来:

func (b *B) launch() { ... // n(int64)可能会溢出 n = goalns * prevIters / prevns ... }

既然知道n会溢出,还不简单?加个判断就完了。

阅读全文

本文共计2066个文字,预计阅读时间需要9分钟。

hello 家长,我是小楼。不知道家长还记不记得,我上次找到的一个Go的Benchmark执行会超时的Bug。就是这篇《我好像发现了一个Go的Bug?》。之后我就向Go提交了一个PR进行修复,本以为“

hello大家好,我是小楼。

不知道大家还记不记得我上次找到了一个Go的Benchmark执行会超时的Bug?就是这篇文章《我好像发现了一个Go的Bug?》。

之后我就向Go提交了一个PR进行修复,本想等着代码被Merge进去,以后也可以吹牛说自己是个Go的Contributor,但事情并不顺利,今天就来分享一下这次失败的代码提交。

第一次提交

在我意识到Bug时,就迫不及待想去修复,于是有了这一次提交。

在说代码前,先说点关于Go仓库的问题,Go并没有直接托管在github,而是自建的Gerrit Code Review,github上只是个镜像仓库,所有在github上提交的issue和代码都会被一个机器人搬运到Gerrit上。

而且Go对提交代码的要求是必须关联一个issue,于是我就提了一个,自问自答了属于是。

描述了一下遇到的问题,但隔天被一位大佬认为是重复问题,并且关闭了这个issue

但我点进去仔细看了下,和我说的应该没有关系,他们讨论的是单测超时不生效的问题,于是我狡辩了一下。

果然狡辩是有用的,另一位大佬同意我的观点,于是我给他点了个赞,但他也指出我的代码存在问题。

下面进入今天的正题,为了便于讲解,我先把有问题的代码段摘出来:

func (b *B) launch() { ... // n(int64)可能会溢出 n = goalns * prevIters / prevns ... }

既然知道n会溢出,还不简单?加个判断就完了。

阅读全文