当对代码表面层次进行改进,就可以往深入讨论程序的循环和逻辑(控制流,逻辑表达式以及相对应的变量)
把控制流变得易读的关键思想是将条件,循环以及其他控制流改的越‘自然’越好,使读者不用停下来重读代码
条件语句的参数顺序的指导时左侧一般更倾向于不断变化的,右侧一般更倾向于常量
if/else语句块的顺序可以提供三种选择:1应首先处理正逻辑而不是负逻辑;2先处理简单的情况;3先处理有趣或者可疑的情况;
且使用方面上尽量使用if/else语句块,只有最简单的情况才使用三目运算符,也避免使用do/while语句块
条件语句块应尽量减少嵌套层,尽量做到最小化嵌套,每一层新的嵌套层都需要把更多的上下文记忆和理解
提前返回可以减少嵌套并让代码简易整齐,保护语句最好放在函数的最顶部
当自己逻辑表达式过于冗长,也是阻碍代码的可读性的原因之一,其艺术性的关键思想是将超长的表达式拆分成易理解的小块,其主要的方法如下:1拆分表达式的最简单的方法试引入一个额外的变量;2即使这个表达式不需要解释,但由于过长,我们可以直接引入一个总结变量来代替相应的含义;3使用德摩根定理;4勿滥用短路逻辑
减少变量,这里的变量指的是没有价值的临时变量,中间结果的变量,控制流的变量
缩小变量的作用域(让自己的变量对尽少的代码试可见),把定义往下移
尽量做到该变量只写一次(操作一个变量的地方越多,越难确定其当前的值)