给变量命名的实用技巧

简介: 不少小伙伴在起变量名的时遇到过困难,在此,分享一些我的经验和建议:1.多读代码,从别人的代码中获得启发;2.分享我自己常用的几个命名逻辑,抛砖引玉;3. Github上也有一些和变量有关的项目,分享了2个,有兴趣的朋友可以了解以下。

不少小伙伴在起变量名的时遇到过困难,在此,分享一些我的经验和建议:


一、多读代码

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

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


二、多读书籍

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

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


三、命名技巧

1. 关于变量、类名

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

2. 关于函数名和方法名

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

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

3. 其它技巧

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

四. Github项目分享:

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


1. codelf

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

codelf


2. clean-code-php

PHP代码的整洁之道,整理了一系列整洁代码实操。小到变量细到 SOLID 都有涉猎。

clean-code-php


以上。

目录
相关文章
|
7月前
|
自然语言处理 算法 Java
C/C++ 程序员编程规范之注释
C/C++ 程序员编程规范之注释
255 1
|
7月前
|
Java 编译器 C语言
python安装、输入输出、注释、中文编码、编码规范等基础语法
python安装、输入输出、注释、中文编码、编码规范等基础语法
106 0
|
程序员
程序员变量命名神器——CodeLf
作为程序猿,最头疼的是不是觉得变量名、方法名不会取名字,现在推荐款神器 -- CodeLf 。有了这个,以后代码的变量名就是 so easy 了,下面给大家讲解一下如何使用。
1990 0
程序员变量命名神器——CodeLf
|
6月前
|
开发者 Python
【干货】Python编程惯例
【干货】Python编程惯例
|
IDE 编译器 Linux
C语言编程语法—语法风格
在一个标准的C语言程序中,最特殊的莫过于main函数了,而说到底它就是一个函数而已,仅仅因为它地位特殊拥有第一执行权力,换句话说,难道因为一个人是省长它就不是人类了?所以函数该有的它都应该有,那么函数还有什么呢?
|
前端开发
前端知识案例84-javascript基础语法-去除空格
前端知识案例84-javascript基础语法-去除空格
51 0
前端知识案例84-javascript基础语法-去除空格
|
Python
python编程 注释
本章将会讲解Python编程中的注释
177 0
python编程 注释
|
程序员 C语言 Windows
编程规范(一)变量命名
编程规范(一)变量命名