4-变量与数据类型(使用变量的一般问题)
来源:互联网 发布:三菱gxworks2软件下载 编辑:程序博客网 时间:2024/06/04 19:13
4-变量与数据类型(使用变量的一般问题)
4.1 数据认知 Data Literacy
代码大全8.1
4.2 轻松掌握数据定义 Making Variable Declarations Easy
- 关闭隐式声明 比如在VB中可以用Option Explicit语句来强迫程序员在使用变量之前做出声明
- 声明全部的变量 这样做虽然不会捕捉到所有错误,但至少能发现其中的一部分
- 遵循某种命名规则
4.3 变量初始化原则 Guidelines for Initializing Variables
4.3.1 常见问题
- 从未对变量赋值. 它的值只是程序启动时变量所处内存区域的值.
- 变量的值已过期. 变量在某个地方曾经被赋值,但该值已经不再有效.
- 变量的一部分被赋值,而另一部分没有.
4.3.2 变量初始化原则
- 在声明变量的时候初始化:在声明变量的同时初始化是一种非常方便的防御式编程方法.
float studentGrades{MAX_STUDENTS}={0.0}
- 在靠近变量第一次使用的位置初始化它
- 特别注意计数器和累加器
- 在类的构造函数里初始化数据成员
- 检查是否需要重新初始化
- 一次性初始化具名常量,用可执行代码初始化变量.
- 使用编译器设计来自动初始化所有变量
- 利用编译器的警告信息
- 检查输入参数的合法性
- 使用内存访问工具检查错误的指针
- 在程序开始时初始化工作内存
4.4 作用域 Scope
4.4.1 使变量引用局部化–减小跨度
- 把引用点尽可能集中在一起
- Its always a good idea to localize references tovariables by keeping them close together,缩小windowof vulnerability(攻击窗口)
- When you keep references to variables close together,you enable the person reading your code to focus onone section at a time.
- If the references are far apart, you force the reader toump around in the program
4.4.2 尽可能缩短变量的存活时间
与跨度不同的是,存活时间不受第一次和最后一次引用变量之间变量使用次数的影响
4.4.3 缩短存活时间的好处
- 减小攻击窗口
- 使你对代码有更清楚的认识
- 减少了初始化错误的可能
- 使代码更具有可读性
- 有益于把一个大的程序拆分成小程序
4.4.4 测量变量的生存空间
4.4.5 减小作用域的一般原则
- 循环开始之前再去初始化该循环里使用的变量,而不是在该循环锁属的子程序的开始处初始化这些变量.
- 直到变量即将被使用时再为其赋值
- 把相关语句放在一起
- 把相关语句组成提取成单独的子程序
- 开始时使用最严格的可见性,然后根据需要阔真变量的作用域(使作用域最小化)
4.4.6 使作用域最小化的说明
- 方便性和智力可管理性两种理念之间的区别,归根结底来源侧重于写程序还是读程序之间的区别.
- 使作用域最大化有利于写程序
- 是作用域最小化有利于读程序
4.5 持续性 Persistence(数据生命周期)
4.5.1 多种形态
- 特定代码段或者子程序的生命周期:for循环里声明的变量
- 只要你允许它就会持续下去:new delete
- 程序的生命期:全局变量
- 永远持续:数据库
4.5.2 好的实践
- 用调试代码或者断言来检查那些变量的合理取值
- 准备抛弃变量时,给他们附上不合理的数值:如删除一个指针后,把它赋为null
- 编写代码时要假设数据并没有持续性
- 养成使用数据之前声明并且初始化的条件
4.6 绑定时间 Binding Time
- 编码时–使用神秘数值
- 编译时–使用具名常量
- 加载时–从注册表,java属性文件等外部数据源中读取数据
- 对象实例化时–例如在每次窗体创建的时候读取数据
- 即时–每次窗体重绘的时候读取数据
4.7 变量类型和控制结构之间的关系 Relationship Between Data Types & Control Structures
- 序列型数据翻译为程序中的顺序语句
- 选择型数据翻译为程序中的ifelse语句
- 迭代型数据翻译成程序中的循环语句
4.8 为变量指定单一用途 Using Each Variable for Exactly One Purpose
使用其用途各建立不同那个变量
4.9 核对表
0 0
- 4-变量与数据类型(使用变量的一般问题)
- 使用变量的一般事项
- 使用变量的一般注意事项
- 使用变量的一般注意事项
- Java变量与变量的数据类型
- 变量与C的数据类型
- Python的数据类型与变量
- 数据类型与变量的分析
- 第十章--使用变量的一般事项
- 变量的定义与使用问题
- C++中一般变量、引用变量、常量、 静态变量、静态常量的初始化问题
- 变量与数据类型
- 数据类型、变量与常量
- java变量与数据类型
- Python变量与数据类型
- 02、变量与数据类型
- javascript变量与数据类型
- java变量与数据类型
- C语言概述 1
- 3-防御式编程
- 带表 双向循环链表的简单操作
- 【java】Java垃圾回收机制
- 完全背包问题
- 4-变量与数据类型(使用变量的一般问题)
- 5-语句编写的技巧与设计
- xadmin可能是帮助我完成django网站的一大助力
- spring @component的作用
- 6-构造与设计的管理
- matlab GUI 新手入门
- 7-形式化语言基础
- 5.4.4
- Java学习笔记-== compare 和 equals