为什么我还在用匈牙利命名法

命名规范主要有匈牙利命名法、驼峰命名法、帕斯卡命名法。虽然匈牙利命名法被很多人十分有优越感的批判,但是在 Windows 客户端开发中,我还是喜欢使用匈牙利命名法。

一、什么是匈牙利命名法

匈牙利命名法就是 作用域(小写)+类型缩写(小写)+含义,比如 m_strPath

常见作用域的前缀有:g,全局;m,成员变量;s,静态变量。

常见类型前缀有:sz,字符串数组;str,std::string \ CString;n,int;等

二、别人为什么批判匈牙利命名法 & 我的看法

1、类型缩写不靠谱

类型类型可能出现碰撞。比如 str 到底是字符串数组,还是 CString。

但是起码我们知道这个类型是字符串,而且碰撞并不常见。

2、不利重构

在重构时,如果改变了变量类型,去在所有的地方改变量的名字是一件很麻烦的事。

使用 VC 助手的改名功能可以很方便的把所有地方的名字都给改了。

3、想知道变量类型的需求有其他方式来实现

想要知道变量类型,把鼠标放过去,很多 IDE 都可以显示了。

把鼠标放过去看变量类型的速度太慢了,远不如看到变量名字直接知道结果来的方便。

4、发明者的本意并非这样

发明者原来说的前缀类型是自然语义,而非数据类型。

伟哥的发明也不是本意。

5、微软都不建议用了

微软提供的 C++ SDK 头文件还是匈牙利命名法的。

三、我为什么还是要用匈牙利命名法

1、从变量名中一眼就能看到作用域和类型真的是很方便。

2、在 Windows 客户端开发中,微软提供的 SDK 还是匈牙利风格的,保持风格的统一。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*