把控制流变得易读
关键思想:把条件、循环以及其他对控制流的改变做得越‘自然’越好。运用一种方式使读者不用停下来重读你的代码。
条件语句中参数的顺序
比较的左侧:‘被问询的’表达式,它的值更倾向于不断变化。
比较的右侧:用来做比较的表达式,它的值更倾向于常量。
if/else语句块的顺序
- 首先处理正逻辑而不是负逻辑的情况。
- 先处理掉简单的情况
- 先处理特殊的情况
三目运算符
默认情况下都使用if/else,三目运算符只有在最简单的情况下使用
避免do/while循环
最小化嵌套
嵌套的代码块需要更加集中精力去理解,每层新的嵌套都需要读者把更多的上下文记住,应该把他们改写得更加线性,避免深嵌套。通常来讲提早返回可以减少嵌套并让代码整洁。
拆分超长的表达式
关键思想:把超长的表达式拆分成更容易理解的小块。
- 引入‘解释变量’来代表较长的子表达式
- 用德摩尔根定理来操作逻辑表达式
- 把复杂的逻辑条件拆分成小的语句
变量与可读性
- 减少变量 减少那些妨碍变量,通过立刻处理结果来消除‘中间结果’变量
- 减小每个变量的作用域,越小越好,把变量移到一个有最少代码可以看到他的地方
- 只写一次的变量更好 使用那些只设置一次的变量(或者const,final,常量)使得代码更容易理解