关于变量名的一点感想
变量的命名规则,一般有这么几种:
1. 骆驼规则,如 Windows Api 的命名规则(CreateFile/GetDiskFreeSpaceEx),Java 类名的规则
2. 首单词小写,如Java方法名(readByte)
3. 下划线分隔单词,如C++标准库(lower_bound/equal_range)
4. 全部小写,无分隔,如unix(posix)的很多函数名(getpagesize),但这类大部分使用所写(mmap/sysconf)
5. 骆驼规则再加下划线,ACE使用这种规则(ACE_Event_Handler )
6. C 宏名命名规则,一般是全部大写,再加下划线(BOOST_CURRENT_FUNCTION/BOOST_STATIC_CONSTANT)
7. Windows 中使用一个变种,全部大写,类别前缀加下划线,再加单词连写(WM_ACTIVATETOPLEVEL)
8. 全部大写,无分隔,如Windows中的结构名
这几种规则,我个人认为最坏的是【8】,然后是【7】,全部大写不加单词分隔很难辨别(单词界线)。【3】在名称比较短时还行,这类名称一般也的确比较短。
这几种命名规则,我个人觉得都不太好,主要是在视觉是感觉不好,以下就举一些反例(最被大家看好的):
【1】. GlobalAlloc,ReadFile,单词的分界在视觉上感觉不舒服,主要是以f/l/d/作为分界时,和下一个单词的首字母大写有些混淆,【2】的缺点跟【1】一样。
【3】. 下划线分隔,有时略显啰嗦,如getpage,就比get_page,来得简明舒服一些
Pascal 命名法遇到单字母的单词比较丑,IsAGoodBoy 别的还不错,所以我用做 interface 部分,比如 class name, function name, public member variable 等。
回复 匿名用户:英雄所见略同