变量名命名的艺术

思维艺术决定你的高度

首先你要了解有哪些命名规则,请看这篇文章:

链接: 编程常用的命名规则
经常使用的几种命名方法:小驼峰(变量)、大驼峰(类名、变量空间)和下划线命名法。

变量名命名的艺术总论

一个好的变量名不是及时的效果,而是长期效益。

a.定义一个变量之后几个小问题:

1.这个变量是什么意思

2.这个变量在这个程序中起到了什么作用

3.过段时间看自己代码(或者发给朋友之后)拿到代码看到这个变量的时候能明白是什么意思吗

b.好的命名是什么样的?

定义一个余额的变量:double balance = 100.00;

定义一个闰年的变量(C用下划线命名法,单词全部不要大写):bool is_leap_year;

C语言创建文件的时候也用下划线命名法后面加.c

接下来定义的变量是需要用户用键盘来输入的,那你可以在变量名前面加入input,例:

input_stu_data;表示需要输入的学生信息

(Java用驼峰):bool isLeapYear;

tips:定义名第一个单词一般是动词

例:

//定义一个当前的日期
//正确的:
int currentDate;//(current当前的)

你要知道你定义的变量是干什么的,比如你在写一个财务报告系统,你定义一个sum函数,大家就不知道你要干

什么,sum是有歧义的,所以在财务报告中一般不要定义sum,你可以定义calc(计算)。

如:calc_value(计算值)或者calc_val或者calcVal

单词虽然有千万个意思,但是在学术界是一条规范。

c.变量名需要的特性:

可读性、容易记、恰如其分、一眼就能看出来你要干啥、不能太冗长 (要取舍)

变量名命名长短直接影响到软件后期的维护和调试、

变量名命名长度最好保证在10到16字符长度的时候(国内一般企业要求9到15个或者8到20个),调试程序的时候 将工作量将到最低。

变量名命名一定是有讲究的,非常有讲究、、、

例:

定义参加奥林匹克运动员数量步骤:首先确定类型是uint numTeamMember;(驼峰)

int num = 0;变量规范,有没有空格,是哪种风格…非常重要

d.变量名命名

变量名命名考虑作用域(不同地方不同命名):

例如:

for (int i = length - 1; i >= 0; i--)
	{
		for (int k = length - 1; k >= 0; i--)
		{
            //OOTD
		}
	}

这种定义int i、k这种命名i、k只用作于for循环的里面,作用域(使用的范围就呢么大)你可以定义成这样,但是如果你想让i走出for,变成全局变量不做局部变量,所以就不能再次因为会出现歧义。你定义在for里面他就是个计数器,没有什么实际意义所以可以。

特别短的变量名适合局部变量,长的适合全局变量,所以这个变量名越短,那这个变量的作用域就越短越短。

for里面的i和k起到了计数器的这么一个作用,,,

e.变量名计数词的选用

sum、avg、average、max、min、total...
//total 共计多少
//使用这些的时候注意
//例如如果你要写员工的总量不介意使用sum,使用total会更好
int total_employees;//这种命名代表含义,一眼可知,total前后都可以,后面可能你看着就比较专业?
//num_employees和employee_num是有歧义的,员工数量?员工号?(一般不使用sum、num这种去命名,会有歧义)
    //单词后面加不加s也很重要+可能表示数量不+可能是表示员工号?、、、

正确表示:

int employees_total;

int employees_index;
//这种差不多了,好像一样,但能一眼看出差别。前后看习惯啦,重要看企业规定,,,

f.编程对立词掌握有利于使用

//up down
//old new
//first last
//min max
//opened closed
//locked unlocked
//begin end
//...

g.常量,宏,指针的一些风格

#define NUM_FIVE 5
//这是啥??? 变量里说是five了你还在后面写5
//常量应该表示可能略有抽象的东西,而不是具体的数字。上述写法错误
(你可以表示一个数组的大小什么的)
//例如:
//在定义指针变量的时候 可以这样定义:
int* pSize;
//这个变量无论去哪里都表示它是指针类型
int iNumber;
//int定义的变量就可能这么写

//匈牙利命名法(习俗)(知道就行)

h.循环计数器i,j,k

C语言中宏用的多,C++就用的很少…

循环内(里面)使用int i,j,k这些变量的话,是允许的。但是如果这样的话

int i;
for( i = 1 ; i < 10 ; i ++){
 data[i] = j;
}

这样将i定义到外面的话,这么写是有问题的。(不对的)

因为这个i可能会被for循环以后的代码应用到,形成所谓的变量污染(是个垃圾数据)(没有被有效管理)。

如果如果你不仅仅用在for中,for后边还会用到,你可以这么写:

int record_count = 0;

while ( xxxxx ){
       record_count ++ ;
}

这个东西就可以计数,,,假如你后面可能还会用到它、、、

在循环嵌套很多的时候,你就老老实实把int i,j这些改了,因为你用这些当作数组的下标,你根本不知道你在干什么,这样玩谁都受不了…

将i和j改成你能看懂的变量,就能看懂了,就不容易写错了,这是你的出路…

i.枚举命名

后续更新

j.临时变量的讲究

temp作为临时变量但在后面要用到temp前面就不要用到temp、、、

不像在for循环里面定义temp,出了for语句,就没了.

或者你在开头定义一个temp后面再也不重新定义,也能说过去、、、

看情况,,,就是如果接下来定义的变量有用的话,那就不要将变量定义成temp

you know???

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

-在喝水

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

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

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

打赏作者

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

抵扣说明:

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

余额充值