我想特别强调的是变量的命名,这点对代码可读性来说是最重要的,
当我看到一段代码中出现了不一致的命名规则时,我会很感觉看代码的效率很低,因为我要去想该变量会对象的含义、目的等等是什么。
我的原则是,变量名必须体现业务逻辑含义。比如控件命名可以为:
userNameTextBox,passwordTextBox,即业务逻辑名+控件名,并且命名风格必须是camel命名法(.NET下的私有成员的命名规范);

上升到更高以及的命名法则就是:业务逻辑名+类型名,当然这里的类型一般不包括基本数据类型,比如int,double等。

下面进行举例:
1:比如现在有一个类型叫Category,那么当我们写parentCategorychildCategory时就已经知道了亮点:1)它们在业务上是父子关系;2)在类型上都是Category类型;如果我们命名为:cateParent,cateChild看似很好,但除非你全部统一用这样的命名风格。但要知道并不是每个类型的缩写都是很容易看懂的。比如有一个类型的名称很长:SmartProjectStatus,那么按照你前面的命名方式的话可能是:spsClosed,表示一个已关闭的SmartProjectStatus。这样的命名太难以理解了。我们应该始终要用统一的命名方式来命名,这点可以说可以看出一个程序员是否有良好的编程信念的关键点。

2:前面有说到对于基本数据类型不必遵循这个规则,直接用业务逻辑名即可,因为基础数据类型往往不需要额外说明。比如:startDate,endDate,startIndex,endIndex,totalCount,maxFailedCount,等等。当我们看到这些变量时,首先我们会很清楚这些变量的业务含义,同时也很清楚他们的类型。像引用到的例子中的命名方式:

for (int i = 0; i < arguments.Length; i++)实在不太好,

试想一下一个函数中出现了i,j,k,等循环变量,也许刚写代码时能记住这些变量的业务意义,在那个循环里,但是别人或者代码的作者过了一段时间后旺旺会忘记,然后他们看代码时一定会去看一个这个变量是在哪个循环里,因为他要知道该循环变量的业务含义。

但是如果你在一开始就用类似下面的命名方法:
for (int argumentIndex = 0; argumentIndex < arguments.Length; argumentIndex++)
那么你就很清楚argumentIndex的业务含义了,他表示某个参数索引。

我说了这么多,想强调的是:变量要以明确告诉看代码的人业务含义为目标,这是最重要的也是必须要严格遵守的约定。否则新人无法看懂你的代码;
至于代码规范,比如大小写,下划线等,只要统一即可,比如public,protected,internal的变量或属性或方法统一用Pascal命名法,private的则统一用camel命名法;这些很容易做到。
但对于初级程序员或者说没有自律意识的程序员来说实在太难做到了。

总之,我希望大家清楚命名的目的,规范的目的;遵守不遵守之间就能彻底地体现你的专业性!


下一篇: 为了可理解性
上一篇: 被逼成精英了
标签:

欢迎转载,转载时必须以链接形式注明来自 【南京典乐科技】
专业服务:南京网站建设,南京网站制作,南京网站设计,南京网站制作公司
咨询电话:13851941123(7*24小时在线服务)
公司网址:本文地址:http://m.025app.com/news/detail_174.html

 
公司简介 | 联系我们 | 知识中心
Copyright © 南京典乐科技 版权所有
苏ICP备12085975号
首页
咨询电话
联系我们