软件开发中的命名法思考

程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较好的命名方式。

常用的命名规范有驼峰命名法(Camel-Case)和匈牙利命名法。 

驼峰命名法就是当变量名或函数名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始,第二个单字的首字母大写;例如:myFirstNamemyLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

匈牙利命名法是一种编程时的命名规范。

基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
属性部分通常是小写的前缀,比如bEnable, nLength, hWnd。

再比如创建课程表单,可命名为frmCreateClass

C++程序,定义一个指针,可以以p开头,pDataBuffer

细心的同学,可以发现,如果匈牙利命名法的属性部门也理解成一个单词,其实和上面的驼峰命名发是一致的。即驼峰命名法在某种意义上包含了匈牙利命名法

经过多年的体会,除了变量的其他代码也尽可能采用驼峰命名法的思想,这样会大大提高编码效率。

这里要提一下函数命名的情况。微软编程的思想里,库函数通常是首字母大写,比如MessageBox这个API函数,但是自己定义的函数并不是一定要这样,你小写也可以。所以,这里就可以统一起来,凡是自定义函数命名的地方也采用驼峰命名。比如:

public String sendMessage(HttpServletRequest request) {
    ...
}

驼峰命名法的第一个单词小写,便于快速编写代码(不用切换到大写状态),而后面的单词大写则是为了直观的查阅变量的意义。

iStudentCount表示学生总数,如果写成istudentcount则非常难懂。当然JAVA程序由于变量类型之间转换已经非常方便,可能会省略前面表示整形的i前缀,而写成studentCount,这也无妨,因为它本质上还是驼峰思想。

不过,很多JAVA程序员不喜欢给类的成员变量加前缀m。其实加上m可以和局部变量区分开来,是很有好处的。

public class UmengController { 
    private final static Logger mRunLogger = LoggerFactory.getLogger("FILE");
 
    public String sendMessage(HttpServletRequest request) {    	    
        mRunLogger.trace("sendMessage start!");
    	String con = null;
        ...
    }
}

从这里例子可以看出,如果一个变量只有一个单词,则全部小写。如con变量。这实质上也不违背驼峰命令法,可以看做是驼峰命名法的简洁化,即这头骆驼只有”头”没有”峰”了。

javascript编程中,全局变量也最好和c语言编程一样,带上g前缀,比如gMaxRecordNums

补充两点其他特殊情况:

 1)、常量的定义,无论哪种命名法都提倡大写,且单词间用下划线隔开。比如:

STUDENT_MAX_NUMS

(2)、类名的定义,首字母也大写。几乎主流语言都这样,所以以后定义类名,千万不要首字母小写的。即使你是php或者python工程师。

不要把这两种情况认为是对驼峰命名的思想冲突,更应该理解为是它是驼峰命令的补充,就像世界需要求同存异一样。更何况,它们让你在代码中更加容易区分类名和常量,有什么不好呢?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wave12_mp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值