数据认知
轻松掌握变量定义
对隐式声明的态度:
如果你使用的语言支持隐式声明,该如何优化:
- 关闭隐式声明。可以通过编译器来进行操作。——推荐。
- 声明全部的变量。——推荐。
- 遵循某种命名规则。——个人不建议,太啰嗦,不实用。
检查变量名。使用编译器或第三方工具生成的交叉引用列表。——太繁琐,不实用。
变量初始化原则
变量初始化的原则:
在声明变量的时候初始化。——实用
- 在靠近变量第一次使用的位置初始化它。——实用
- 理想情况下,在靠近第一次使用变量的位置声明和定义该变量。——实用
- 在可能的情况下使用final或者const。——实用
- 特别注意计数器和累加器。
- 在类的构造函数里初始化该类的数据成员。
- 检查是否需要重新初始化。
- 一次性初始化具名常量:用可执行代码来初始化变量。——实用
- 利用编译器的警告信息。
- 检查输入参数的合法性。
- 实用内存访问检查工具来检查错误的指针。
-
作用域
对作用域概念的描述。
使用作用域的一些原则:使变量引用局部化&尽可能缩短变量的存活时间。使变量引用局部化。
尽可能缩短变量的存活时间。
总结:存活时间变短不仅可以减少出错的可能,还会使代码更具可读性。阅读者在同一时间内需要考虑的代码行数越少,也就越容易理解代码。
减小作用域的一般原则
在循环开始之前再去初始化循环里使用的变量,而不是在该循环所属的子程序的开始处初始化这些变量。
- 知道变量即将被使用时再为其赋值。
- 把相关语句放到一起。
- 把相关语句组提取成单独的子程序。
- 开始时采用最严格的可见性,然后根据需要扩展变量的作用域。
有关缩小变量作用域的说明
持续性
变量的“可持续性”本质就是变量“生命周期”的另一种说法,本章没啥收获。
绑定时间
什么是变量的“绑定时间”
通常,采用越晚的绑定时间会越有利。把绑定时间定义的越晚,你的代码里就包含了越多的灵活性,同时也会具备更多的可读性,但是会引入复杂性。
数据类型和控制结构之间的关系
为变量指定单一用途
使用变量的原则:
- 使每个变量只用于单一用途。
- 避免让代码具有隐含含义。
核对表
本章思维导图
原图:https://www.processon.com/view/link/5ffaab3e1e0853437c6fd682