Google代码健康:减少嵌套,降低复杂性
本文源于Google公司的马桶上的健康代码,作者:Elliott Karpilovsky。
深层嵌套的代码会损害可读性,并且容易出错。尝试在下列代码的两个版本中寻找错误:
答案:“ wrong encoding”和“ unauthorized”错误会互换。在重构版本中更容易看到该错误,因为检查是在处理错误时进行的。 上面显示的重构技术称为守卫子句。守卫子句检查条件,如果不满足则快速失败。它将计算逻辑与错误逻辑分离。通过消除错误检查和处理之间的认知鸿沟,释放了脑力处理需要。结果:重构的版本更易于阅读和维护。
下面是减少代码中嵌套的一些经验法则:
- 保持条件块短小。通过将内容保留在本地来提高可读性。
- 当循环和分支的嵌套深度超过2层时,请考虑进行重构。
- 考虑将嵌套逻辑移到单独的函数中。例如,如果需要遍历每个包含一个列表对象的列表(例如具有重复字段的协议缓冲区),则可以定义一个函数来处理每个对象,而不是使用双重嵌套循环的实现方式。
减少嵌套可以使代码更具可读性,从而暴露可发现的错误,更快的迭代开发和更高的稳定性。如果可以,请简化!
- 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!