《代码大全2》读书笔记——变量(使用变量的一般事项)

原创 2006年06月03日 15:13:00
《代码大全2》读书笔记——变量(使用变量的一般事项)
1、“变量”在这里同时代表对象内置数据类型
2、要养成良好的创建变量的方法和习惯。
(1)对支持隐式变量声明的语言,在未声明变量时,编译器会自动声明变量,但这种做法不好。
(2)对支持隐式变量声明的语言,建议关闭隐式声明、声明全部变量、遵循某种命名规则、检查变量名。
3、变量初始化
(1)在声明变量的时候初始化。
(2)在靠近变量第一次使用的位置初始化。即就近原则,把相关的操作放在一起。
(3)理想情况下,在靠近第一次使用变量的位置声明和定义该变量。声明指定了变量的类型,定义为变量指定特定的取值,每个变量都应该在声明的同时被定义。
(4)在可能的情况下使用final或者constfinalconst关键字在定义常量、输入参数以及任何初始化后其值不再发生改变的局部变量时非常有用。
(5)特别注意计数器和累加器。注意在下一次使用这些变量之前重置其值。
(6)在类的构造函数里初始化该类的数据成员。如果在构造函数里分配了内存,就应该在析构函数中释放。
(7)检查是否需要重新初始化。如果的确需要重新初始化,要确保初始化语句位于那些重复执行的代码内部。
(8)一次性初始化具名常量;用可执行代码来初始化变量。若想用变量来摸拟具名常量,则在程序开始处对常量做一次初始化即可。对于真正的变量,则应在靠近它们使用位置用可执行代码对其初始化。
(9)使用编译器设置来自动初始化所有变量。确保记下所使用的编译器设置。
(10)利用编译器的警告信息。
(11)检查输入参数的合法性。赋值前确保数值合理。
(12)使用内存访问检查工具来检查错误的指针。
(13)在程序开始时初始化工作内存。
4、变量的作用域
作用域或者可见性指的是变量在程序内的可见和可引用的范围。
(1)使变量引用局部化。好的做法是把对一个变量的引用局部化,即把引用点尽可能集中在一起,提高程序的可读性。(跨度)
(2)尽可能缩短变量的“存活”时间,即一个变量存在期间所跨越的语句的总数,开始于引用它的第一条语句,结束于引用它的最后一条语句。可以减少初始化错误的可能,会使代码更具可读性,也会使把相关的代码片断重构为单独的子程序会非常容易了。(生存时间)
5、减小作用域的一般原则
(1)在循环开始之前再去初始化该循环里使用的变量,而不是在该循环所属的子程序的开始处初始化这些变量。
(2)直到变量即将被使用时再为其赋值。让变量的赋值位置越明显越好。
(3)把相关语句放在一起。
(4)把相关语句组提取成单独的子程序。
(5)开始时采用最严格的可见性,然后根据需要扩展变量的作用域。在对变量的作用域进行选择时,应该倾向于选择该变量所能具有的最小的作用域:首选将变量局限于某个特定的循环,然后是局限于某个子程序,其次成为类的private变量,protected变量,再其次对包(package)可见,最后在不得已的情况下再把它作为全局变量。
6、变量的持续性
(1)在程序中加入调试代码或者断言来检查那些关键变量的合理取值。如果变量取值变得不合理,就发出警告信息通知去寻找是否有不正确的初始化。
(2)准备舍弃变量时给它们赋上“不合理的数值”。
(3)编写代码时要假设数据并没有持续性。
(4)养成在使用所有数据之前声明和初始化的习惯。
7、变量的绑定时间
即变量和它的值绑定在一起的时间,采取越晚的绑定时间会越有利。变量与数值绑定时间的情况:
(1)编码时(使用数值硬编码)
(2)编译时(使用具名常量)
(3)加载时(从外部数据源中读取数据)
(4)对象实例化时(如每次窗体创建时读取数据)
(5)即时(如每次窗体重绘时读取数据)
一般而言,绑定时间越早灵活性越差,但复杂度也会越低。但希望获得灵活性越强,则支持这种灵活性的代码就越复杂,出错几率也会越高。按照需要引入足够的灵活性来满足软件需求。
8、数据类型与控制结构
(1)序列型数据对应程序中的顺序语句。序列型数据是由一些按照特定顺序使用的数据组成的。若在一行中写有五条语句,每条语句都负责处理一项不同的数据,则它们就是顺序语句。
(2)选择型数据对应为程序中的ifcase语句。选择型数据指的是一组在任一特定时刻有且仅有一项被使用的数据。相应的程序语句必须做出实际的选择。
(3)迭代型数据对应为程序中的forrepeatwhile等循环结构。迭代型数据是需要反复进行操作的同类型的数据,通常保存为容器中的元素、文件中的记录或者数组中的元素。迭代型数据与负责读取数据的迭代型代码(即循环)相对应。
在使用过程中,可能结合了序列型、选择型和迭代型数据,可以把这几种简单的构造块组合起来描述更复杂的数据类型。
9、为变量指定单一用途
(1)每个变量只用于单一用途。
(2)避免让代码具有隐含含义。
(3)确保使用了所有已声明的变量。检查代码以确认使用了所有声明过的变量的习惯。
 2006年6月3日 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

代码大全第二版读书笔记 第三部分-变量 十、使用变量的一般事项

使用变量的一般事项(P237) 1.数据认知 你了解多少数据类型? 2.轻松掌握变量定义 一些简单的习惯。 关闭隐式声明声明全部的变量遵循某种命名规则检查变量名 3.变...

【把经典读薄】《代码大全2》读书笔记之一 使用变量的一般事项

代码大全第二版 第十章 使用变量的一般事项 读书笔记 General Issues in Using Variable   把第十章作为开篇重读《代码大全》,并做好详细的读书笔记,希望它能给我全新的收...

读书笔记——代码大全——变量名的力量

1、长度 2、命名方法

代码大全第二版读书笔记 第三部分-变量 十二、基本数据类型 十三、不常见的数据类型

基本数据类型(P291) 1.数值概论(P292) 避免使用“神秘数值”如果需要,可以使用硬编码的0和1预防除零错误使类型转换变得明显避免混合类型的比较注意编译器的警告 2.整数(P...

代码大全第二版读书笔记 第三部分-变量 十一、变量名的力量

变量名的力量(P259) 1.选择好变量名的注意事项 一个好的变量名是可读的、易记的和恰如其分的。 1)最重要的命名注意事项 为变量命名时最重要的考虑事项是,该名字要完全、准确地描述出...

《代码大全》读书笔记——重构

重构         首先说一下重构的概念,重构是一个过程,是在不改变代码外在行为的前提下,对代码进行修改,以改进程序的内部结构,达到提高软件的质量和性能,使程序的设计和架构更加合理,提高软件的可扩展...

代码大全2读书笔记

代码大全2读书笔记       作者写这本书的首要目的,就是希望缩小本行业中一般商用实践与大师级人物及专家们之间的知识差距。许多强大的编程技术在被编程领域的大众接触之前,都已在学术论文和期刊里尘封...

《代码大全2》读书笔记

软件的复杂性来自本质性和偶然性没有人的大脑装得下一个现代的计算机程序,所以必须把程序组织起来,一次只关注一小部分。信息隐藏要隐藏的是复杂度和变化源concept blockbusting有一些设计的习...

《代码大全2》读书笔记

这本书的核心思想是: 管理软件项目的本质是管理复杂性。 代码承载的是人与人之间的交流。 第一部分 打好基础第2章 隐喻重要的研发成果常常产自类比(analogy)。通过把你不太理解的东西和一些你较为理...

Java高手真经_编程基础卷——读书笔记(2)——JDK安装-环境变量及Eclipse

学习Java得首先装好JDK,这样才可以边学边练习呀。下边就说一说如何安装JDK和
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)