《代码大全》阅读笔记-10-使用变量的一般事项
利用构建活动来填补需求和架构中存在的细小间隙是一种行之有效的做法;但把蓝图设计得精细到已经能完全展现出所有的细节则实在是一种低效的方法
尽量缩小变量的作用域,尽量缩短变量的生存时间 ——Tacey
基础数据类型:
核对表(使用数据的一般事项)
初始化变量
- 每一个子程序都检查其输入参数的正确性了吗?
- 变量声明位置靠近变量第一次使用的位置吗?
- 尽可能地在声明变量的同时初始化变量了吗?
- 如果无法同时声明和初始化变量,有没有在靠近第一次使用变量的位置声明变量?
- 计数器和累加器经过了适当的初始化了吗?如果需要再一次使用,之前重新初始化了吗?
- 适当的重新初始化“需要重复执行的代码里的变量”了吗?
- 代码在通过编译器编译的时候是不是没有警告信息?(你启用了所有可用的警告选项了吗?)
- 如果你用的语言允许隐式声明,你为此可能引发的问题做好补偿措施了吗?
- 一次性初始化所有具名常量:可用可执行代码初始化之
使用数据的其他事项
- 如果可能,所有变量都被定义为具有最小的作用域了吗?
- 各变量的引用点都尽可能集中在一起了吗?对同一变量的两次相邻引用,或者变量的整个生命周期都这样做了吗?
- 控制结构符合数据类型吗?
- 所有生命的变量都用到了吗?
- 变量都在合适的时间绑定了吗?——也就是说,你有意识地在晚期绑定所带来的灵活性和增加的复杂度之间做出平衡了吗?
- 每个变量都有且仅有一项用途吗?
- 每个变量的含义都很明确且没有隐含含义吗?
要点
- 数据初始化过程很容易出错,使用上面初始化方法来避免由于非预期的初始化值而造成的错误。
- 最小化每个变量的作用域。把同一变量的引用点集中在一起。把变量限定在子程序或类的范围之内。避免使用全局数据。
- 把使用相同变量的语句尽可能集中在一起
- 早起绑定会减低灵活性,但有助于减小复杂度。晚期绑定可以增加灵活性,同时增加复杂度
- 把每个变量用于唯一用途
还真有人点开啊🤣随意随意😂