优秀的代码审查会挑战你的假设,并给予你建设性的反馈。对我来说,代码审查是我作为软件工程师成长过程中的重要组成部分。
编写代码是一个很私密的过程。软件工程师花费多年时间学习软件工程的技艺,当有人对我们的创作提出批评时,很难不将其视为个人攻击。我发现自己有时在听到批评时会变得防御性很强。我知道审查者的初衷是好的,但这并不总是令人欣慰的。如果没有来自一些杰出软件工程师的诚实反馈,我不会成为今天这样的软件工程师。
代码审查的好处
1. 发现错误
有时仅仅是阅读代码就能发现错误。有时是其他开发者发现了错误。无论如何,仅仅通过代码走查就足以暴露潜在的问题。
我把我的错误看作是磨刀石。引用迈克尔·乔丹的话:
在我的职业生涯中,我错过了超过9000次投篮。我输过将近300场比赛。26次,我被信任去投出制胜球,但我失手了。我一次又一次地失败。这就是我成功的原因。
2. 知识转移
与他人分享你的工作是谦逊的。在很多方面,你就是代码。我知道当我分享我的代码时,我会感到脆弱。
这是一个学习和教导其他工程师的绝好机会。在分享代码时,你是在带审查者踏上一段旅程,一段进入代码的旅程,以及关于你的方面的旅程。通过你如何编写代码,可以学到很多关于你的东西。
在代码审查结束时,审查者应该对代码的工作原理、其背后的原理有很好的理解,并会对你有所了解。
3. 改进代码的健康状况
正如我所提到的,你阅读代码的次数越多,代码就会变得越好。审查者越多,其中一个人提出改进建议的机会就越大。有些人可能认为技能水平很重要,但事实并非如此。经验较少的软件工程师没有经验丰富的软件工程师那样深厚的技术知识,但他们也不必费力去理解所有的技术包袱就能看到改进的机会。
代码审查给了我们评估代码的好处。总是有一些东西可以改变,使其变得更好一点。
从这个意义上说,编码很像写作。为了让一个好的作品成形,代码必须静置并被重新阅读。你重复这个过程的次数越多,代码就会变得越好。
总结
有些公司没有正式进行代码审查,这没关系。寻找其他工程师。大多数软件工程师会很乐意花10到15分钟来查看你的代码。
作者:Chuck Conway 是一位 AI 工程师,拥有近 30 年的软件工程经验。他构建实用的 AI 系统——内容管道、基础设施代理和解决实际问题的工具——并分享他沿途的学习成果。在社交媒体上与他联系:X (@chuckconway) 或访问他的 YouTube 和 SubStack。