12bet,的读书笔记

简化循环和逻辑

12bet,把控制流变得易读

关键思想: 把条件、循环以及其他对控制流的改变做得越“自然”越好。运用一种方式使读者不用停下来重读你的代码

12bet,条件语句中参数的顺序

  1. 比较的左侧:“被问询的”表达式,它的值更倾向于不断变化
  2. 比较的右侧:用来做比较的表达式,它的值更倾向于常量

if/else语句块的顺序

  • 12bet,首先处理正逻辑而不是负逻辑的情况。
  • 先处理掉简单的情况。
  • 先处理有趣的或者是可疑的情况

?:条件表达式(又名“三目运算符”)

关键思想: 相对于追求最小化代码行数,一个更好的度量方法是最小化人们理解它所需的时间。

建议: 默认情况下都用if/else。三目运算符12博体育,?:只有在最简单的情况下使用。

避免do/while循环

while循环相对更易读,因为你会先读到所有迭代的条件,12博体育,然后再读到其中的代码块

其中的continue语句会很让人迷惑

臭名昭著的goto

尽量使用向后goto,同事保证路径没有交叉

最小化嵌套

嵌套很深的代码很难以理解。

关键思想: 当你对代码做改动时,从全新的角度审视它,把它作为一个整体来看待。

通过提早返回来减少嵌套

拆分超长的表达式

关键思想: 把你的超长表达式拆分成更容易理解的小块。

用做解释的变量

拆分表达式最简单的方法就是引入一个额外的变量,让它来表示一个小一点的子表达式。

总结变量

用一个短很多的名字来代替一大块代码,这个名字会更容易管理和思考。

使用德摩根定理

德摩根定理: 对于一个布尔表达式,“分别取反,转换与/或”

滥用短路逻辑

关键思想: 要小心“智能”的小代码段——它们往往在以后会让别人读起来感到困惑

拆分巨大的语句

同样的技术也可以用来拆分大的语句。

变量与可读性

  1. 变量越多,就越难全部跟踪它们的动向。
  2. 变量的作用域越大,就需要跟踪它的动向越久。
  3. 变量改变得越频繁,就越难以跟踪它的当前值。

减少变量

如果一个变量符合下面条件,它就是一个没有价值的临时变量,应当删除:

  • 没有拆分任何复杂的表达式。
  • 没有做更多的澄清
  • 没有压缩任何冗余代码。

减少中间结果

减少控制流变量

将用于控制程序流的变量尽可能删除

缩小变量的作用域

关键思想: 让你的变量对尽量少的代码行可见。

这样有效地减少了读者同时需要考虑的变量个数

尽量使方法变成静态的

静态方法是让读者知道“这几行代码与那些变量无关”的好办法。

只写一次的变量(常量)更好

“永久固定”的变量更容易思考

关键思想: 操作一个变量的地方越多,越难确定它的当前值。