Fork me on GitHub

评审可理解的代码

Google代码健康

Posted by Kaelzhang on July 15, 2020

Google代码健康:评审可理解的代码

本文源于Google公司的马桶上的健康代码,作者:Max Kanat-Alexander

很容易假设向你发送一些代码评审的开发人员比你以往任何时候都聪明,这就是为什么你不理解他们代码的原因。

但实际上,如果很难理解代码,则可能太复杂了。 如果你熟悉所使用的编程语言,那么阅读健康的代码应该几乎和阅读母语一样简单。

假设开发人员向你发送了以下Python代码块给你评审:

def IsOkay(n):
  f = False
  for i in range(2, n):
    if n % i == 0:
      f = True
  return not f

不要试图花时间来理解它。 只需简单地添加一个代码评审意见:“我很难理解这段代码”。或者说得更具体些:“请在此处使用更多描述性名称”。

然后,开发人员修改代码并将其发送给你以供再次评审:

def IsPrime(n):
  for divisor in range(2, n / 2):
    if n % divisor == 0:
      return False

  return True

现在我们可以很容易地阅读它,这本身就是一个好处。

通常,仅要求开发人员清晰化一段代码就会带来根本的改进。 在这种情况下,由于代码更易于阅读,因此开发人员注意到了性能上的可能改进-现在,当数字不是素数时,该函数将更早返回,并且循环仅到达n / 2而不是n

**但是,既然我们可以轻松理解此代码,那么我们可以看出许多问题。 **例如,它具有0和1的奇怪行为,并且还存在其他问题。 但最重要的是,现在很明显,应该删除整个功能,并用一个预先存在的功能代替,以检测数字是否为质数。 清晰化代码对开发者和评审者都有帮助。

总而言之,不要浪费时间评审难以理解的代码,而只需要求对其进行清晰化。 实际上,这样的评审意见是代码评审者拥有的最有用和最重要的工具之一!


  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!