Fork me on GitHub

减少嵌套,降低复杂性

Google代码健康

Posted by Kaelzhang on June 24, 2020

Google代码健康:减少嵌套,降低复杂性

本文源于Google公司的马桶上的健康代码,作者:Elliott Karpilovsky。

深层嵌套的代码会损害可读性,并且容易出错。尝试在下列代码的两个版本中寻找错误

答案:“ wrong encoding”和“ unauthorized”错误会互换。在重构版本中更容易看到该错误,因为检查是在处理错误时进行的。 上面显示的重构技术称为守卫子句。守卫子句检查条件,如果不满足则快速失败。它将计算逻辑与错误逻辑分离。通过消除错误检查和处理之间的认知鸿沟,释放了脑力处理需要。结果:重构的版本更易于阅读和维护

下面是减少代码中嵌套的一些经验法则

  • 保持条件块短小。通过将内容保留在本地来提高可读性。
  • 当循环和分支的嵌套深度超过2层时,请考虑进行重构。
  • 考虑将嵌套逻辑移到单独的函数中。例如,如果需要遍历每个包含一个列表对象的列表(例如具有重复字段的协议缓冲区),则可以定义一个函数来处理每个对象,而不是使用双重嵌套循环的实现方式。

减少嵌套可以使代码更具可读性,从而暴露可发现的错误,更快的迭代开发和更高的稳定性。如果可以,请简化!


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