用户工具


if后面后必须有括号,且有else

  • 必须有括号:保证该一起执行的代码再一起,不被缩进影响
  • 必须有else:强制自己思考如果不满足条件应该怎么样?

尽量不使用自增符号

  • 除了在for循环中、或者单独一行否则不能使用自增:因为自增从语义上不是很好理解,且需要区分前置、后置自增

循环中尽量不用contine,break

  • continue让程序变得难以理解:continue的语义是关注不要做什么,
    • 解决方案:我们用if可以转成关注换要做什么
  • 不用使用break: 常常需要关心break后,程序跳转到哪里了,在多层循环的时候经常搞迷糊
    • 解决方案:最好将需要break的地方封装成一个函数,满足条件直接return

continue,break 打破了逻辑局部性,每次使用continue,break时需要向前找代码(找while, for)。这样非常影响逻辑的严谨性。 重构的时候很难考虑到修改了while时,还要去找循环体中是否存在continue和break,特别是循环体比较大的时候。

说白了 continue,break 和 while,for不是强关联。重构的时候很容易忘记他们的关系

慎用短路操作符

  • 除了逻辑判断中,其他地方不能使用短路操作,以为短路操作的隐式逻辑容易让人迷惑
fun1() && fun()2

改成
if(fun1()){
   fun()2;
}

多用临时变量

  • 经常看到有人将很多函数连续调用变成很长的一行。其实这样很容易出错
    • 解决方案
    • 多用临时变量(临时变量一般都在栈上不会影响性能,和gc)
    • 每次连续调用尽可能不超过1次
    • 局部变量名字建议短一些,但也要能表达语义。