发布于 2026-01-05 5 阅读
0

改变我人生的代码审查

改变我人生的代码审查

一次代码审查改变了我作为软件工程师的职业生涯。那是我入职大约三个月的时候。那天,我正在处理代码库中一个我从未接触过的部分。在此之前,我几乎只用 JavaScript 工作,但那部分代码是用 Python 写的。Python 不是我最熟悉的语言,但我之前在学校作业和一些课外项目中用过它。我按照要求实现了功能,创建了一个新的 PR,并请一位资深工程师审查。他是一位机器学习工程师,经验比我丰富得多,我们之前从未合作过同一部分代码。他的工作内容远远超出了我的理解范围。我记得当时我为自己能用不同的语言实现功能而感到自豪。但同时,我也很紧张,不知道他的代码审查会是什么结果。

大约过了30分钟,我去洗手间,看到他开始看我的PR。这很好,他应该能在午饭前完成代码审查。这样我下午早些时候就能合并PR,然后就可以安心回家了。结果他并没有在午饭前完成代码审查。等他完成的时候,已经过了下午2点。他花了几个小时审查我的代码。我有点摸不着头脑,打开PR一看,发现他的评论比我的代码还长。这让我感到沮丧和灰心。

然而,当我阅读评论时,我意识到他指出的所有问题都完全有道理。他的评论既周到又不失礼貌。有些是关于代码风格的建议,但真正让我印象深刻的是关于设计原则或代码异味的评论。例如,他评论道:“如果你必须将布尔值作为标志传递,这通常是一种代码异味。这意味着该函数可能被拆分成两个独立的函数。” 在那之前我从未注意到这一点,但他的话却让我茅塞顿开。如果他没有指出这一点,我可能还会继续以同样的方式编写代码。我需要的仅仅是他指出一次而已。

但那次代码审查教会了我比具体风格技巧更重要的东西。从那时起,我对编写代码的态度发生了改变。我开始更加严谨地审视自己的代码。我开始阅读一些书籍来学习软件设计原则。我甚至开始阅读其他人提交的 PR 的评论。在那次代码审查之后,我开始理解成为一名软件工程师的意义。我不再仅仅满足于交付功能完善的代码,而是想要编写可读且易于维护的代码。软件工程是一项团队合作。

自从我辞掉第一份工作和朋友一起创业以来,已经过去了六个多月。我写代码的时间和以前一样多,甚至可能更多。然而,我意识到,如果没有经验丰富的工程师进行代码审查,作为一名工程师的成长会面临诸多困难。学习一门新的编程语言尤其具有挑战性,因为很难掌握最佳实践。

代码审查的主要目的是保持代码库的高质量,同时也是团队内部知识共享的绝佳途径。初级开发人员可以从代码审查中获益良多。如果想在工作之外获得代码审查机会,参与开源项目是一个常见的方法。开源项目是向其他工程师学习的绝佳途径,但同时也可能耗时费力,令人望而生畏。此外,有些人更喜欢独立开发项目,而不是参与开源项目。这样一来,他们的代码就缺乏审查的机会。

我见过一些工程师因为缺乏生产环境经验而在面试中被拒。他们不知道如何在公司环境下为代码库做贡献。这些人陷入了一个悖论:如果一个应届毕业生或自学成才的开发者没有任何工作经验,而他们唯一能获得代码反馈的地方又只有工作场所,你又怎能指望他们理解软件工程的基础知识呢?

我认为代码审查的价值太高了,不应该只让少数人参与。每个人都应该从中受益。即使只是一次代码审查,也能像对我一样,让一个人的编程能力提升到一个全新的水平。

如果你对代码审查、提升自身开发能力,或者帮助他人提升开发能力感兴趣,欢迎访问Antcode。我致力于创建一个人人都能参与代码审查的社区。


如果您喜欢这篇文章,我们建议您订阅Antcode 博客,并在 Twitter 上关注我们@o_nagen@mkinoshita12

如果你想获得代码审查和从其他人的代码审查中学习,我们建议你了解一下我们在Antcode正在构建的东西,并加入我们的代码审查 Slack 群组

祝您编程愉快!

文章来源:https://dev.to/mkinoshita12/the-code-review-that-c​​hanged-my-life-44l4