2009-02-13读书记录:《代码大全》(第一版)第九章——数据名称
2009-02-13 13:57
316 查看
主要讲命名,变量命名、常量命名、类命名、空间命名等等。每个写程序的人都已经很熟悉的对变量命名了,几乎是巧可生精的程序了。熟不知命名也是有一定说法的。名称的长短、最佳字符数、接口命名规范、命名空间名称的约定等等,命好了名字不但表达明确了而且看着也舒服啊!
最佳命名长度:太短的名字表达不出完整的意思,太长的名字又难以输入。本章中并没有说多长才算合适,这确实是一个难以制定的界限,比如计数器用一个i就可以了,没必要写着TheTimeCounter,文中只是对比给出了过长、过短和恰好的三种变量名,让读者自己参考总结。
较长的名字适于较长使用的全局变量;而较短的名字则适用于局部变量
命名的一致性可以改善可读性并简化了维护
非一系列的变量命名中,尽量减少使用相同的单词
特殊数据命名
循环控制变量命名常用i,j,k
状态变量命名最好不要用flag;最好给标志赋值,并用枚举、常量对其进行测试
临时变量用来保存中间运算结果,可以使用TEMP或者X,若使用比较多还是起一个有意义的名字较好
逻辑变量命名几条准则:
(1)典型逻辑变量名:Done(工作完成)、Error(发生错误)、Found(取了某个值)、Success(操作成功)
(2)非真即假:不会出现第三种状态,如Done、Success,而Status则是不恰当的
(3)加前缀Is,如IsDone,则用Ture或False回来此问
(4)肯定的逻辑变量命名方便非运算
枚举类型命名,采用相同的前缀或后缀表示为同一组
用它所代表的抽象实体而非数值,常量命名多为全单词的大写
命名约定
记得我公司的一位前辈为我们新手写过一篇文章,主旨是说“程序是写给人看的”,提到了各种命名、编码规范、注释等等一些基础的编码方面需要注意的细节。也同样约定了一种规则要求我们大家都遵守,当时没发现有什么可取之处,到后来软件进行升级需要国际化的时候,大家各自的命名给其他人造成了很大的阻碍,纷纷后悔没按照这个规则进行编码,额外付出了大量的时间和精力。
非正式命名约定
标识全局变量:全局变量前面加一个“g_”做为标识
标识模块变量:即不是全局变量也不是局部变量,可以在变量前面加“m_”
标识类型命名:以“_T”表示类型名称,如:COLOR_T
标识命名常量:以“_C”做为后缀名
标识枚举类型:以“_e”或“_E”作为后缀
以分隔符或大家字母将单词分开可以增强可读性。尽量不要混合使用这两种方式,坚持使用其中一种即可。
各语言都有自己有关命名的约定,要遵守所使用语言的约定。书中例子我熟悉C语言,所以记录一下有关C的约定:
c和ch是字符变量
i和j是整形下标
n是数量
p是指针
s是字符串
预处理程序宏指令是以全部大写来表示的,这通常扩展到包含tepedef
变量和子程序名称都是小写的
下划线“_”用做分隔符
以上这些对于习惯了.NET开发的我来说,还是有几点不适用的,变量和子程序名称小写就不太符合,继续下看“匈牙利命名”。
匈牙利命名
这个被使用的最广泛,发明人是Charles Simionyi一个匈牙利人,没以自己的名字命名,而是以国籍命名,赞一个!
匈牙利命名主要包括三部分:基本类型、一个或更多个前缀、一个限定词。
读过了才知道,原来匈牙利命名的还挺多,不过还好大部分都遵守了,用的多了、熟了自然而然就和标准一样了。
短名称
现在的语言对名称的长度没有限制,所以这一节只是了解一下而已。
最佳命名长度:太短的名字表达不出完整的意思,太长的名字又难以输入。本章中并没有说多长才算合适,这确实是一个难以制定的界限,比如计数器用一个i就可以了,没必要写着TheTimeCounter,文中只是对比给出了过长、过短和恰好的三种变量名,让读者自己参考总结。
较长的名字适于较长使用的全局变量;而较短的名字则适用于局部变量
命名的一致性可以改善可读性并简化了维护
非一系列的变量命名中,尽量减少使用相同的单词
特殊数据命名
循环控制变量命名常用i,j,k
状态变量命名最好不要用flag;最好给标志赋值,并用枚举、常量对其进行测试
临时变量用来保存中间运算结果,可以使用TEMP或者X,若使用比较多还是起一个有意义的名字较好
逻辑变量命名几条准则:
(1)典型逻辑变量名:Done(工作完成)、Error(发生错误)、Found(取了某个值)、Success(操作成功)
(2)非真即假:不会出现第三种状态,如Done、Success,而Status则是不恰当的
(3)加前缀Is,如IsDone,则用Ture或False回来此问
(4)肯定的逻辑变量命名方便非运算
枚举类型命名,采用相同的前缀或后缀表示为同一组
用它所代表的抽象实体而非数值,常量命名多为全单词的大写
命名约定
记得我公司的一位前辈为我们新手写过一篇文章,主旨是说“程序是写给人看的”,提到了各种命名、编码规范、注释等等一些基础的编码方面需要注意的细节。也同样约定了一种规则要求我们大家都遵守,当时没发现有什么可取之处,到后来软件进行升级需要国际化的时候,大家各自的命名给其他人造成了很大的阻碍,纷纷后悔没按照这个规则进行编码,额外付出了大量的时间和精力。
非正式命名约定
标识全局变量:全局变量前面加一个“g_”做为标识
标识模块变量:即不是全局变量也不是局部变量,可以在变量前面加“m_”
标识类型命名:以“_T”表示类型名称,如:COLOR_T
标识命名常量:以“_C”做为后缀名
标识枚举类型:以“_e”或“_E”作为后缀
以分隔符或大家字母将单词分开可以增强可读性。尽量不要混合使用这两种方式,坚持使用其中一种即可。
各语言都有自己有关命名的约定,要遵守所使用语言的约定。书中例子我熟悉C语言,所以记录一下有关C的约定:
c和ch是字符变量
i和j是整形下标
n是数量
p是指针
s是字符串
预处理程序宏指令是以全部大写来表示的,这通常扩展到包含tepedef
变量和子程序名称都是小写的
下划线“_”用做分隔符
以上这些对于习惯了.NET开发的我来说,还是有几点不适用的,变量和子程序名称小写就不太符合,继续下看“匈牙利命名”。
匈牙利命名
这个被使用的最广泛,发明人是Charles Simionyi一个匈牙利人,没以自己的名字命名,而是以国籍命名,赞一个!
匈牙利命名主要包括三部分:基本类型、一个或更多个前缀、一个限定词。
读过了才知道,原来匈牙利命名的还挺多,不过还好大部分都遵守了,用的多了、熟了自然而然就和标准一样了。
短名称
现在的语言对名称的长度没有限制,所以这一节只是了解一下而已。
相关文章推荐
- 2009-02-16读书记录:《代码大全》(第一版)第十二章——复杂数据类型*
- 2009-02-15读书记录:《代码大全》(第一版)第十一章——基本数据类型
- 2009-02-12读书记录:《代码大全》(第一版)第八章——生成数据
- 2009-02-13读书记录:《代码大全》(第一版)第十章——变量
- 2009-02-16读书记录:《代码大全》(第一版)第十三章——顺序程序语句
- 2009-02-17读书记录:《代码大全》(第一版)第十六章——少见的控制结构
- 2009-03-01读书记录:《代码大全》(第一版)第二十七章——系统集成
- 2009-03-02读书记录:《代码大全》(第一版)第二十九章——代码调试技术
- 2009-02-21读书记录:《代码大全》(第一版)第二十一章——项目大小如何影响创建
- 2009-02-04读书记录——《代码大全》(第一版)第一、二章——欢迎进入软件创建世界
- 2009-02-23读书记录:《代码大全》(第一版)第二十四章——评审
- 2009-02-23读书记录:《代码大全》(第一版)第二十五章——单元测试
- 2009-03-01读书记录:《代码大全》(第一版)第二十八章——代码调整策略
- 2009-02-06读书记录——《代码大全》(第一版)第四章——建立子程序的步骤
- 2009-02-17读书记录:《代码大全》(第一版)第十五章——循环语句
- 2009-02-22读书记录:《代码大全》(第一版)第二十二章——创建管理
- 2009-02-20读书记录:《代码大全》(第一版)第十九章——文档
- 2009-02-24读书记录:《代码大全》(第一版)第二十六章——调试
- 2009-03-03读书记录:《代码大全》(第一版)第三十一章——个人性格
- 2009-02-12读书记录——《代码大全》(第一版)第七章——高级结构设计