美文网首页谈技术想法读书
高级工程师如何审查代码

高级工程师如何审查代码

作者: 技术的游戏 | 来源:发表于2022-12-31 21:21 被阅读0次

当审查拉取请求时,我看到了完成要求并立即获得批准的漂亮代码。

我也见过长轮来回,要求改变。令人困惑或过于努力的代码。

这是我作为高级工程师和技术主管在代码审查中寻找的东西。我也尝试让我自己的代码符合这些标准。

尺寸

乍一看,我对拉取请求的最初反应是:

“改变了多少?”

有两个原因:

  1. 第一个是自私的。我需要知道 PR 审核需要 10 分钟还是一个小时。如果你的 PR 真的很大,我可能需要稍后再审核。如果您想要快速审查,请瞄准更短的 PR。
  2. 第二个是思考变革管理。当您对代码库进行重大更改时,出错的机会就会增加。通常,对于大型拉取请求,您可以通过多种方式分阶段单独发布部分代码。这些类型的增量更改更可取。

教训是让你的拉取请求尽可能小。根据需要,创建从初始 PR 分支出来的后续 PR,以允许按顺序发布代码。

测试

接下来,我查看拉取请求是否包含测试。测试应该清楚地展示新代码的行为和预期结果。

我将尝试考虑可能尚未测试的边缘案例并对其发表评论。作为 CI/CD 的一部分,我鼓励我工作的团队针对存储库运行代码覆盖率,以确保所有新代码都经过测试。

测试帮助我作为审阅者理解代码。在我看来,它们在合并任何代码之前也是必不可少的。

结构

现在我已准备好查看新的逻辑代码,我将从评估解决方案的整体结构开始。

因为我只是查看了测试,所以我对代码如何协同工作来解决问题有一个想法。我将浏览已承诺回答一些问题的文件、类、函数等:

  • 这个新代码的位置有意义吗?
  • 它使用逻辑类结构吗?它应该从某个现有类继承还是以某种方式共享逻辑?
  • 函数和类的参数是否合乎逻辑且命名合理?
  • 函数返回什么?那有意义吗?
  • 我们可以简化实现的结构吗?

逻辑

解决了这些大问题后,我将深入研究代码的实际内容。

在我工作过的大多数团队中,我们使用静态分析工具来自动检查代码质量。这些工具可以解决大部分明显的错误、安全漏洞和低效问题。有一个自动的第一次通过并知道你正在审查的任何 PR 至少满足一个基本阈值是很有用的。

当我评估一个函数或类时,我会按以下顺序寻找一些关键的东西:

  • 是否有意义?— 如果不是,那就是危险信号。这意味着代码比它需要的更复杂。
  • 浪费吗?— 培养算法复杂性的直觉是一项困难但有用的技能。通常,这意味着一些简单的事情,比如使用字典而不是列表,只迭代一次并记住结果,或类似的事情。
  • 它可以更简单/更清洁吗?— 看到一条不必要的线路或一种可以更简单地做某事的方法并不少见。在大多数情况下,将其归因于开发人员连续数小时处理同一问题 — 无法发现错误,因为他们已经在问题中待了很长时间。

命名

新代码文档的第一行是很好的命名。

我所有的代码审查都包括我思考变量、函数和类名称是否有意义的部分。我们可以使用更短的名称吗?所有名称是否都清楚地传达了它们是什么或它们做什么?

我的一个规则是没有缩写。虽然他们现在看起来很聪明,但随着时间的推移,他们会变得站不住脚。所有的名字都需要拼写出来并清楚它们的意思。

命名是软件开发中最困难的部分之一。

文档

最后,我检查代码是否有适当的文档。

我并不是说开发人员需要编写有关代码及其作用的段落。只是每一段代码都应该有一个简单的描述它是如何工作的。

例如,在 Python 中,我们使用文档字符串来做到这一点。每个新函数或类都需要有一个文档字符串。在 JavaScript 中,出于同样的目的,我在函数定义之前使用了内联注释。

我还鼓励团队为他们的参数和返回值使用类型。类型注释是我寻找的另一份文档。

适当的文档还意味着在您更改内容时更新现有文档。在代码审查中,我试图提醒开发人员在过时时更新文档字符串和注释。

另一大块是外部文档。如果更改影响外部 API,则需要使用新信息更新 API 文档。

未来 PR 的清单

希望本文为您提供了寻找内容的良好基础。当您提交自己的代码以供审查时,您可以将其用作清单,以确保在请求他人审查之前您已涵盖所有内容。

当您进行自己的审查时,请随意使用它作为分析其他人代码的指南。

如果你喜欢我的文章,点赞,关注,转发!

相关文章

  • 高级工程师如何审查代码

    当审查拉取请求时,我看到了完成要求并立即获得批准的漂亮代码。 我也见过长轮来回,要求改变。令人困惑或过于努力的代码...

  • 最佳的代码审查工具

    好的代码审查器可以大大地帮助程序员提高代码质量,减少错误几率。 虽然现在市场上有许多可用的代码审查工具,但如何挑选...

  • 程序猿必备的17款最佳的代码审查工具

    好的代码审查器可以大大地帮助程序员提高代码质量,减少错误几率。 虽然现在市场上有许多可用的代码审查工具,但如何挑选...

  • 如何做代码审查

    作者: 耳朵里有风 一、代码审查概述 代码审查 3W What: 什么是代码审查 对计算机源代码系统化审查,常用软...

  • 代码审查

    程序员必备的代码审查(Code Review)清单 在我们关于高效代码审查的博文中,我们建议使用一个检查清单。在代...

  • 代码审查

    什么是代码审查? 代码审查是确保错误和错误在进入生产环境之前被捕获和修复的过程。这通常需要开发人员的参与,他们没有...

  • 代码审查(Code Review)的本质

    什么是代码审查? 代码审查是一个过程,即代码只有经过非作者本人评审后才能进入代码仓库。 代码审查的目的 但是大家为...

  • 如何做好代码审查

    要有审查清单 代码审查这件事其实是可以标准化和流程化的,其效果在一定程度上也是可以量化的。要想做好代码审查...

  • 代码审查(Code Review)清单

    (转)代码审查(Code Review)清单在我们关于高效代码审查的博文中,我们建议使用一个检查清单。在代码审查中...

  • Google鼓励的13条代码审查标准 [建议收藏]

    如何在代码审查方面表现出色 在本文中,我们将简要介绍13种代码审查标准,这些标准可以极大地帮助改善软件的运行状况并...

网友评论

    本文标题:高级工程师如何审查代码

    本文链接:https://www.haomeiwen.com/subject/upuqcdtx.html