编写可读代码(一) 命名方法和命名规范

计算机编程中主要有四种命名法则匈牙利命名法、下划线命名法、帕斯卡命名法和骆驼命名法。

一、匈牙利命名法

据说这种命名法是一位叫 Charles Simonyi 的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。这种命名法的出发点是把变量名按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解。(引自百度百科,匈牙利命名法词条)

匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。 匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

由于微软的windows系统大量采用了匈牙利命名法,并且在以前的visual studio中建议使用匈牙利命名法,因此这种命名法有着不小的市场,但也有着大量批评的声音。到了.net,微软也不再建议使用匈牙利命名法,而采用骆驼命名法和帕斯卡命名法。在我看来,主要有以下几个原因,导致这种命名法难以使用。

1,类型太多,需要记忆的小写字母前缀很多,而且一旦进行组合之后会更让初学者不明所以。如很多博文中都会举出的例子m_lpszStr,其中m_表示成员,l表示长类型,p表示指针,sz表示以‘\0’结尾的字符串,因此这个标识表示指向一个以0字符结尾的字符串的长指针成员变量。但是我们自己使用的时候,无论是起名字还是去读,我觉得都很容易搞错吧。。

2,对于结构体、联合体这样的类型应该用什么样的小写字母?我简单查了下,貌似没有确定的标准,这就给不同的程序员之间的沟通带来了问题。

3,对于C++中大量引入的新特性,匈牙利命名法无法支持。如命名空间、模板类、类型修饰(如const、static等),都难以用匈牙利命名法去找到确定的描述方式。

举个例子,std::map<int,string> ,我觉得这样的类型很难用匈牙利命名法来表示了。

4,很多时候,匈牙利命名法中提供的类型信息是冗余的、无用的。在这个时候,命名法造成的信息冗余反而会分散人的注意力,对代码的阅读产生了负面的作用。

对于这种情况,我的看法是,用一个好的名字,比在名字中加入类型信息会有更好的效果。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写可读代码的艺术》 pdf 是一本关于如何编写易读易懂的代码的书籍。这本书主要探讨了编程规范、代码布局、注释与命名等方面的内容,旨在帮助开发者写出更具可读性代码。 在编写可读代码方面,本书提供了一些实用的建议和技巧。首先,合理的代码布局对于代码可读性至关重要。代码应该按照功能块进行划分,并使用适当的缩进和空格进行格式化。此外,书中还强调了代码命名的重要性,建议使用有意义的变量、函数和类名,以便于他人读懂代码的意图。 此外,本书还介绍了如何编写清晰的注释。注释应该解释代码的意图和逻辑,而不是简单地重复代码的功能。良好的注释能够帮助其他开发者快速理解代码,从而提高合作效率。同时,书中还指出了过多或过少的注释都可能导致代码可读性下降,因此要把握好注释的适度。 编程规范也是写出可读代码的重要因素。本书介绍了一些常用的编程规范,例如代码缩进、命名规范、函数和类的定义等。遵循统一的编程规范可以使代码的格式统一,便于他人阅读和维护。 总的来说,《编写可读代码的艺术》是一本对于如何写出易读易懂的代码进行探讨的实用指南。通过遵循良好的代码布局、规范的命名、清晰的注释等技巧,开发者可以提高代码可读性,从而更好地与他人合作,并加速项目开发进程。这本书对于任何追求编程方法优化的开发者来说,都是一本值得阅读的参考书籍。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值