2020-11-13

关于入门C语言编写程序思路——命名艺术

我们为什么要在程序代码中涉及命名?为什么要讲究命名艺术?

先不说代码中的命名,在我们平常生活中,父母给孩子命名,主人给宠物命名,这些都是为了给某个个体或事物一个特殊的特征。这个特征不是他们自身所有的,而是他人给予的。而因为这个特征,某个个体或事物就能够被清楚准确地被辨别呼唤,而不是说——比如,那个人,那家伙,那条狗,那只猫,那件事——这种暧昧不清的说法。

再来看看代码中。我们定义常量变量函数的时候也会给它们命名,为的就是在需要的时候能够辨别它们。而在有多个常量、变量和函数的时候,命名就变得重要起来。

就比如,你是个懒人,也懒得给好几个函数想名字,于是你把它们分别命名为a,b,c,d,e,f,g。结果在你需要用到其中的某个函数的时候,你忘记了哪个函数是用来干嘛的,于是你回去一个个查看,发现自己还忘记写注释了,结果为了调用一个不知道是哪个名儿的函数你浪费了你宝贵的几分钟。

在函数数量较少的时候这或许花不了你多少时间,但如果是一个庞大的程序,命名不当就是一个致命的错误。在遇到更困难的问题之前你已经为自己没有给函数好好取名而欲哭无泪,想着一开始为什么不好好命名,最后只能自认活该并大大增加了不必要的工作量。

如何命名

现在我们认识到了命名的重要性,那么我们就要开始接触命名艺术的冰山一角了。有人看到艺术可能会本能地想要退却,因为他们认为艺术这种东西和自己的生活八竿子打不着。他们将艺术定义为和美与音乐与绘画相关的东西,而实际上艺术是一种相当暧昧的词,也有很多种不同的释义。

在这里简单来说,我们的命名艺术可以大致解释为取一个好名字。那么什么是好的名字呢?

清晰,简洁。

清晰,表意要清晰。通过名字就能知道这个常量或变量或函数是用来做什么的吗?

简洁,可读性强。是否能看一眼就能明白,而非盯着屏幕还要思考很久才知道这个名字是什么意思?

通常来说,我们在取名时会采用英语单词或者短语而非句子,尽可能以简短为主。这是因为过长的句子会导致短时间的识别性与阅读性下降,能够用单词和短语表达的就尽可能不用长句。

不过要强调的是,我们这么做是为了能够清楚简便地通过名字知道这个东西是干嘛的。并不是最短最精炼就是最好的,如果一个较长名字能够比较短的名字更加清楚,那我们会选择较长的取名。如果一味追求最短最精炼,会导致“你能知道这个精炼出来的词代表着什么意思 而其他程序员看了只会摸不到头脑结果导致误会和麻烦的产生”的状况。

比如说,你要给一个函数命名,它的作用是判断这个数是否为素数。有人可能会为了追求最精简而把它命名为“is”。那别的程序员就要头大了。“is”?“is”是干嘛的?搞什么?你倒是把话说清楚啊?为了让别人知道这个函数是为了判断素数,我们还是把它命名为isPrime吧。

另外,我们也要尽可能避免意思相近与重复。不过追根求源,产生这种问题的原因还是在定义时思路不清晰,能够合并在一起的作用相同的东西没有合并,不能合并本质不同的东西没有好好区分。所以在命名的时候要考虑清楚,是否命名过意思相近的名字?如果有,将两者进行分析比较。这需要一种能够深入思考分析本质的能力,而如何培养这种能力并非在这里的重点。不过在命名过程中多思考,在学习别人的程序代码时多观察思考,总会逐渐锻炼起这种分析能力。

感谢看到这里的你。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值