一个人要不要代码审查,我的做法改过

我给自己配了 5 个 AI 员工做一人公司,其中小码负责写代码。那之后我最长一段时间的心安来源是:AI 审 AI,看上去像有人把关,直到我开始琢磨代码审查一个人怎么做。

后来我把这套做法整个换掉了。结论是:要审,但不能审成流程,得审成习惯。

一、我最初的做法:把审查做成了一道闸

最开始我给自己定的规矩是:写完的功能不立刻合并,先放一天,第二天再看一遍,看完才合并。

这个做法听着很对,执行起来很快就变形了。因为只有我一个人,第二天我大概率在写新东西,那段旧代码我根本没心情重读,最后变成走过场——看一眼,点合并。

没有第二个人在场的时候,所有流程都会退化成仪式。代码审查一个人怎么做,第一个要解决的就是这个问题。

更具体地说,问题出在反馈周期上:放一天再看的收益,抵不过我当天就想推进新功能的冲动。

二、改法一:把「审」提前到写之前

第一次调整是把审查的时点前移。

写之前我先做一件事:把这次要改的文件列出来,然后问自己一句——这次改动会让哪个文件变复杂?答不上来的,说明我还没想清楚。

这个问题还顺带拦住了另一类情况:同一件事我已经在别处写过一遍了,只是忘了。

这个动作花的时间极短,但它拦下了一批「本来就不该写」的改动。

三、改法二:审的不是代码,是差异

第二次调整是把审查对象从「整个文件」换成「这次改了什么」。

我发现自己重读整个文件时,注意力会跑到已经写过的地方,看完很累但抓不到新问题。看差异就聚焦得多:这次新增的分支,有没有对应的失败路径?这次改的字段,有没有别的地方还在用旧名字?

判断标准从「这段代码好不好」变成了「这次改动完不完整」,这对我一个人来说好操作得多。

还有一层好处:差异是有限的,文件是无限的。看差异这件事,永远有看完的时候。

四、改法三:让 AI 当审的人,我当定的人

第三次调整是分工。

现在我让 AI 员工先看一遍差异,让它挑出「空指针、边界、并发、错误被吞掉」这一类确定性问题。这类问题它比我快,也不会因为熟悉而看不见。

然后由我判断的是另一类:这个设计要不要这么走、这个字段要不要现在加。这部分没法外包,因为它依赖我对业务的判断。

AI 能替我看代码,替不了我做取舍。这个分工比「AI 审 AI」踏实得多。

有一点要提醒:AI 挑出来的问题不能全盘照改,它不知道哪些是当时的取舍。判断仍在我这边。

五、我的审查清单现在只有五条

清单太长就不会被执行,所以我把检查项压到五条:

  • 新增的逻辑有没有对应的失败分支
  • 有没有错误被吞掉
  • 有没有把不该写死的东西写死
  • 命名说的是不是它实际做的事
  • 这次改动有没有让某个文件变得更长、更难懂

五条扫完,通常两分钟。能坚持的审查标准,一定是很短的那种。

六、代码审查一个人怎么做到底有没有用

有用,但它解决的不是「别人会不会发现我的错」,而是「我会不会漏掉自己的漏」。

这两个问题不一样。前者需要第二双眼睛,后者只需要一个固定下来的检查动作。

我用 AI 员工补上了前者的很大一部分,剩下的部分靠这五条清单兜住。一个人做代码审查,目标不是审得全,是别让同一个错误犯第二次。这就是我对代码审查一个人怎么做这个问题的全部答案。

常见问题

Q:一个人做代码审查有必要吗?

A:有必要,但不要做成合并前的流程闸门。更有效的做法是看差异、用短清单、把机械问题交给工具,把设计判断留给自己。

Q:AI 写的代码还需要人审吗?

A:需要。AI 生成的代码通常能跑,但边界情况、错误处理、和项目既有约定的契合度,仍然要由人来判断。

Q:自审容易走过场怎么办?

A:把审查对象缩小到「这次改了什么」,并固定一份五条以内的清单。范围小、标准短,才不容易变成看一眼就点合并。

相关阅读


本文作者西米,37 岁程序员,一个人加五个 AI 员工在跑一家公司。踩过的坑和真实账本都写在公众号「西米分享」。

完整代码、踩坑清单与最新进展,都在公众号。

📱 关注公众号「西米分享」