第二部分:简化循环和逻辑
第七章把控制流变得易读
把条件、循环以及其他对控制流的改变做的越“自然”越好,运用一种方式使读者不用停下来重读你的代码。
1、 条件语言中参数的顺序。【比较的左侧:“被询问的”表达式,它的值更倾向于不断变化;比较的右侧:用来做比较的表达式,它的值更倾向于常量】
2、 If/else语句块的顺序
a) 首先处理正逻辑而不是负逻辑。If(debug)而不是if(!debug).
b) 先处理掉简单的情况。这种方式可能还会使得if和else在屏幕之内都可见。
c) 先处理有趣的或者可疑的情况。
3、 ?:条件表达式。默认情况下都用if/else,只有在最简单的情况下使用三目运算符。
4、 避免do/while循环
5、 从函数中提前返回。从函数中提前返回没有问题,而且常常很受欢迎。
6、 慎用goto
7、 最小化嵌套。
a) 通过提早返回来减少嵌套,return。
b) 减少循环内的嵌套,continue。
第八章拆分超长的表达式
1、引入额外变量,又称“解释变量”。Usrname= line.split(‘:’)[0].strip() if(usrname == “root”)xxxx
2、总结变量,用一个短很多的名字来代替一大块代码,这个名字更容易管理和思考。
3、不要滥用短路逻辑。
4、找到更优雅的表达方式。
5、拆分巨大的语句。
6、做相似的复杂的事情,定义宏。
第九章变量与可读性
问题:
变量越多,就越难全部跟踪他们的动向。
变量的作用域越大,就需要跟踪它的动向越久。
变量改变的越频繁,就越难以跟踪它的当前值。
1、 减少变量。
a) 没有价值的临时变量,去除。
b) 减少中间结果。
c) 减少控制流变量
2、 缩小变量的作用域。把定义下移。
3、 只写一次的变量更好。操作一个变量的地方越多,越难确定它的当前值。
------------------from 《the art of readable code》