变量命名那点小事

代码好似程序员手中的兵器,有人使的独孤九剑,有人使的打狗棒。前端

最近review代码有点多,看到了一些很不“讲究”的代码。本篇打算聊聊我作code review的一点心得,先从变量命名这件小事提及吧。node

 

使用简单易识别的单词程序员

这一条在码农界应该是公认的吧,不要搞太复杂太生僻的单词。有些人恰恰喜欢炫本身的英文水平,不考虑其余同事的感觉。因此起名要用一些很常见的单词,不要超太高中水平就好了。frontend

好比须要为“成绩”起名,百度一翻译叫achievement,咱们选score就好。函数

 

边界要准确翻译

变量的名字要能准确涵盖它的含义,不要超出范围,也不要覆盖不到。这一点尤为在给项目或模块起名字时要注意。code

拿咱们公司的来举例,我见过一个项目叫17zuoye_frontend,感受上是整个公司的前端都在里面,事实上这只是众多项目中的一个而已。变量

还有一个项目,用nodejs重构了前端层,结果把项目命名为nodejs_front,感受让人摸不着边界。ejs

名字起过小了也不行,未来加别的功能会很别扭。比如你的的招牌挂着黄焖鸡米饭,里面却硬要卖烤鸭。cli

 

符合语义

代码是给人看的,或许是给别人,或许是给几个月后的本身。因此描述必定要准确,不要使用语义上有明显出入的名字。

前几天review一个同事的代码,看到这么一行:clientName = true;

我当时就比较懵,这个单词明明是“客户端名称”的意思,怎么会给赋值为true呢?询问以后才知道他要在clientName为某个值的时候判断是否展现头部,为了使用方便就直接这么写了。

所谓语义就是,要符合天然语言的表述习惯。新手常常会有这样的想法,只要代码能跑通,变量和逻辑是否「语义正确」不闻不问。其实这是很很差的,这样的代码会愈来愈难维护,最后本身写的本身都看不懂。

说到语义还有一点,那就是不要使用太通用的单词,好比value、data这些。都表示一个值,可是彻底无从知道它表明的是什么值,最好起具体的名字。

 

函数名称

有一个同事使用的单词却是很简单,好比页面有一个选中标签页的功能,他给函数命名为select。这样的问题在于,若是页面中还有其余的选择功能该怎么办呢?在看代码的时候,光看到select彻底不知道是要选什么。

因此在给函数命名的时候,我强烈推荐动-宾结构,好比selectTab、checkPrice,有动词有宾语,看代码的是就很容易能对应到页面功能上去。

 

属性名称

关于属性的命名也一样,看了名字就立马能在页面找到最好。好比你把导航栏叫nav,就不如叫leftNav好,这样我立马就知道是页面左侧的导航栏,而不是顶部。

其实这和咱们的天然语言是很相似的,我说“脑壳”,你不知道我想说啥,我说“周杰伦的脑壳”,你脑海中立马就有影像了。因此属性的命名要用偏正短语,说白了就是“xxx的xxx”这样的结构。

 

以上是最近review代码时关于变量命名的一些感想,再次强调一下,不要觉得程序能跑通就万事大吉了。代码是你的思惟的展示,混乱的命名行为只能说明你的思惟是不清晰的。 感受有不妥的地方,立马全局替换,不留后患。

相关文章
相关标签/搜索