昨天和一位年轻朋友聊天,他告诉我在他写代码的时候,总会被变量命名所难到,不知道怎样命名变量是最有效的。

你是否也被类似的问题困扰过?

其实,我在一开始写代码的时候也为命名变量烦恼过。后来看了许多其他人的项目,请教了前辈的经验,慢慢也摸索出了变量命名方法和技巧,在此分享给大家,希望能帮到有类似疑惑的朋友。

代码变量命名工具 学会这3个必备技巧(1)

关于变量命名,在此分享4点建议:

一、多读代码

你可以回忆一下,你现在常用的那几个变量名称,它们中是不是有很大一部分最早是出现在别人的代码里?

必须承认,你所写的代码很多时候并不那么特殊。可能已经有无数前人遇到过相同需求,编写过相似代码。多看一些其他人的代码,你可以从中得到启发,为你未来构写代码、命名变量的时候提供灵感。

二、多读书籍

编程是一种语言,语言都是后天习得的。作为编程语言能力的一部分,变量命名也可以通过学习习得。除了上述向别人的代码学习外,还有一个选项就是看英文书籍。

至于挑选书目,我建议要有针对性,可以选择一些和你当前业务场景相关的书。通过这些书,你可以在深入了解整个业务逻辑,同时还能在不经意间获得与业务相关的英语词汇,这对你变量起名帮助很大。

三、命名技巧

关于变量、类名:

  1. 变量名一般使用英语,不要用动词,变量名通常建议使用名词,选择的名词需要直接指向该变量的意涵;
  2. 可以在名词前面添加修饰词来区分相似变量,修饰词可以是形容词,如sortKey中的sort,也可以是指向更细节的名词,如DataFrame中的Data;
  3. 如果该变量是基础数据类型,则通常使用名词的单数型式,如果该变量是诸如Array、List、Set这样的数据集合,则通常使用名词的复数形式作为变量名;
  4. 类名的命名技巧和变量基本一致,不过类名一般不使用复数。

关于函数名和方法名:

函数名和方法名的命名逻辑就比较多样了,这里的技巧分享仅作为抛砖引玉,欢迎补充:

  1. 方法命名的核心是动词:很多方法用纯动词来表达,如:concat、match等;
  2. 有些方法名会使用动宾词组:即“动词 作用对象名词”的形式。值得一提的是,这里的名词在逻辑上也往往可以是方法后面的参数,如:hasNext、trimEnd,这里的Next和End逻辑上也可以是has和trim的参数;
  3. 活用介词:介词是英语的一大特色,在我们给变量起名的时候也扮演了重要的角色,大量地出现在方法名中,如:startsWith、charAt等;
  4. 有些方法是以动名词的形式出现:通过动词向'er'、'ing'、'ed'的变形来命名方法。这类方法名的一大特点是,指向的结果往往是一个对象实例,常见的如constructor、cheching等;
  5. 最后一种方法名,就是纯名词的形式:这种方法通常是输出和获取该对象中某个特定的属性或者变量,这种命名方式本质上就是命名变量,可以参考上文对变量的命名,如:keys、items等。

其它技巧

  1. 熟练使用局部变量和作用域:有时候同一个变量名会在多处用到,且指向的含义不同。这时候,熟练掌握局部变量和作用域就非常必要了,这让这些相近概念的变量有了使用同一个变量名的可能性,且不会相互影响。常见的例子有for循环中的变量i,就是利用了局部变量和作用域的特性。不过这个方法需要对该语言有相当深刻的理解,否则容易出现变量覆盖。
  2. 活用匿名函数:匿名函数也是一个减少变量命名的神器,如果能熟练掌握匿名函数的使用,通常可以减少10%左右的变量命名工作。但凡事皆有利弊,匿名函数的缺点是多人开发和维护时会造成理解上的难度。
  3. 定期检查僵尸代码:可以有效地帮助你清理变量冗余,为变量起名提供更多余地。

分享了这么多干货,看到这里的你,难道不点个赞吗~

代码变量命名工具 学会这3个必备技巧(2)


四. Github项目分享:

最后,我在这里给大家总结了一些和变量命名有关的Github上的高分项目,大家可以依此学习变量命名技巧:

1. codelf

这是一个变量命名工具。计算机科学中最困难的两件事:缓存故障和命名。这个工具支持直接搜索中文,当您检索中文时,Codelf 会直接翻译单词并找到单词的同义词。然后搜索Github、Bitbucket、Google Code等开源项目的源代码匹配与这些词相关的变量名和函数名。

在线网址->https://unbug.github.io/codelf/

代码变量命名工具 学会这3个必备技巧(3)


2. clean-code-php

PHP代码的整洁之道,整理了一系列整洁代码实操。小到变量细到 SOLID 都有涉猎,中文译版->https://github.com/php-cpm/clean-code-php

代码变量命名工具 学会这3个必备技巧(4)


3. one-Python-craftsman

这个项目是针对Python的开发规范。优秀的 Python 代码由无数优秀的细节组成。这个项目详细的解释 Python 那些看似简单的细节,如何使用异常,如何命名变量,如何编写条件分支等,这些看似简单其实也可能是最难的地方。本项目作者是资深 Python 开发,内容接近实际工作和业务场景,我相信仔细学习这个项目,你的编码能力会大大提高,帮助你帮助你 Python 更高更远的发展道路。

与变量命名相关的部分,可以直接点这里->https://www.zlovezl.cn/book/ch01_variables.html


以下是我之前分享的有关写代码的使用技巧,有需要的同学可以直接点击下方链接获取:

【推荐阅读】

程序员如何写出一手优雅的代码?18条规则你必须要知道

「LSTM文本生成器」动手写一个自动生成文章的AI,附完整代码

结束语

我是@老K玩代码,专注于编程开发的经验总结和项目分享,如果你对编程感兴趣,可以关注我。

有其它开发相关的问题,欢迎随时私信我。

代码变量命名工具 学会这3个必备技巧(5)

,