美文网首页
前端开发规范:变量命名

前端开发规范:变量命名

作者: 何于__ | 来源:发表于2017-08-16 14:20 被阅读0次
豆瓣

为什么要有规则?

很多程序员,包括我自己都很讨厌规则,但是不能一概而论 命名规则有他的好处:

  • 要求你更多地按规矩行事,集中精力关注代码更重要的特征;
  • 有助于在项目之间传递知识;
  • 有助于在新项目中更快速地学习代码;
  • 有助于减少名字增生,在没有规则下,很容易给同一个对象起两个不同的名字;
  • 弥补编程语言的不足之处;
  • 强调相关变量之间的关系。

重点是要有一个规则,采用任何一个规则都好于不用规则

语义前缀 含义
c 数量(count)
g 全局变量
i 数组的下标
p 指针(pointer)
first 数组中需要处理的第一个元素
last 数组中需要处理的最后一个元素,与first对应
lim 数组中需要处理的元素的上限,通常,lim等于last+1
m 类一级的变量
max 数组或其他种类的列表中绝对的最后一个元素
min 数组或其他种类的列表中绝对的第一个元素
  • 能更为精确地描述一些含义比较模糊的名字
  • 使名字变得更加紧凑

最重要的命名注意事项

  • 名字要完全、准确地描述出该变量所代表的事物
  • 用名字表达变量所代表的是什么,不包含晦涩的缩写,同时也没有歧义
例子

变量用途好名字,好描述坏名字,差描述

  • 到期的支票累计额 runningTotal,checkTotal written,ct,checks,CHKTTL,x,x1,x2
    高速列车的运行速度 velocity,trainVelocity,velocityInMph velt,v,tv,x,x1,x2,train
    当前日期 currentDate,todaysDate cd,current,c,x,x1,x2,date
    每页的行数 linesPerPage lpp,lines,l,x,x1,x2

以问题为导向

一个好记的名字反映的通常都是问题,而不是解决方案。即,一个好名字通常表达的是什么(What),而不是怎么样(How)。通常来说,如果一个名字反映了计算机的某些方面而不是问题本身,那么它反映的就是“How”而非“What”了。

比如,考虑下面这两个变量命名:inputRecemployeeDatainputRec是一个反映输入、记录这些计算概念的计算机术语。employeeData则直指问题领域,与计算机无关。

类似地,printerReadybitFlag更能表达打印机的状态;在财务软件里,calcVar比sum来得更准确。

最适当的名字长度

经研究发现,变量名的平均长度在10到16个字符的时候,调试花的力气是最小的。平均名字长度在8到20隔字符的程序也几乎同样容易调试。这并不意味着你的变量名一定要在8到20个字符,它强调的是,如果你查看自己写的代码时发现了很多更短的名字,那么你就需要认真检查,确保这些名字含义足够清晰。

下面展示变量名太长、太短或刚好的示例:

太长 : numberOfPeopleOnTheUsOlympicTeam; numberOfSeatsInTheStadium; maximumNumberOfPointsInModernOlympics
太短 : n, np, ntm; n, ms, nsisd; m, mp, max, points
正好 : numTeamMembers, teamMemberCount; numSeatsInStadium, seatCount; teamPointsMax, pointsRecord

变量名中的计算值限定词

很多程序都有表示计算结果的变量:总额、平均值、最大值,等等。如果你要用类似Total、Sum、Average、Max、Min、Record、String、Pointer这样的限定词来修改某个名字,那么请记住把限定词加到名字的最后。

这种方法的优点:

  • 变量名中最重要的那部分,即为这一变量赋予主要含义的部分应当位于最前面,这样,这一部分就可以显得最为突出,并会被首先阅读到;
  • 避免了由于同时在程序中使用totalRevenuerevenueTotal而产生的歧义
  • 使用统一的编码规范可以提高可读性,简化维护工作。比如,revenueTotal、expenseTotal、revenueAverage、expenseAverage这组名字具有非常优雅的对称性。而totalRevenue、expenseTotal、revenueAverage、averageRevenue这组名字中则看不出什么规律来。
    这条规则也有例外,那就是Num的限定词的位置已经是约定俗成的。Num放在变量名的开始位置代表一个总数,比如:numCustomers表示员工的总数。Num放在变量名的结束位置代表一个下标:customerNum表示的是当前员工的序号。这样使用Num常常会带来麻烦,因此,最好的方法是避开这些问题,使用Count或者Total来代表总数,使用Index来指代某个特定的员工。这样,customerCount就代表员工的总数,customerIndex代表某个特定的员工。

变量名中的常用对仗词

对仗词要使用正确,不然会产生歧义。

常用对仗词如下:

  • begin/end
  • first/last
  • locked/unlocked
  • min/max
  • next/previous
  • old/new
  • opened/closed
  • visible/invisible
  • source/target
  • source/destination
  • up/down

为特定类型的数据命名

  • 为循环下标命名 不要使用i j 等 除非是非常简单的循环函数
  • 状态变量命名 不要使用flag status 等 而是使用能反应出状态的具体的名字
  • 临时变量 不要使用temp等 要把临时变量和变量同样对待

创建具备可读性的短名字

如果环境真的要求你创建简短的名字,请注意有些缩短名字的方法要好于其他的方法。

缩写的一般指导原则

下面列出几项用于创建缩写的指导原则。其中一些原则彼此冲突,所以不要试图同时应用所有的原则

  • 使用标准的缩写
  • 去掉所有非前置元音(computer => cmptr, screen => scrn, apple => appl, interger => intgr)
  • 去掉虚词and,or,the等
  • 使用每个单词的第一个或前几个字母
  • 统一在每个单词的第一、第二或者第三个字母后截断
  • 保留每个单词的第一个和最后一个字母
  • 使用名字中的每一个重要单词,最多不超过三个
  • 去掉无用的后缀--ing,ed等
  • 保留每个音节中最引人注意的发音
  • 确保不要改变变量的含义
  • 反复使用上述技术,直到把每个变量名的长度缩减到了8-20个字符。

应当避免使用的命名

  • 避免使用令人误解的名字或缩写,比如将"Fig and Almond Season"缩写为FALSE
  • 避免使用具有相似含义的名字
  • 避免使用具有不同含义但却有相似名字的变量
  • 避免使用发音相近的名字
  • 避免在名字中使用数字
  • 避免在名字中拼错单词
  • 避免使用英语中常常拼错的单词
  • 不要仅靠大小写来区分变量名
  • 避免使用多种自然语言
  • 避免使用标准类型、变量和子程序的名字
  • 不要使用与变量含义完全无关的名字
  • 避免在名字中包含易混淆的字符,比如1(数字1)和l(字母l),0(数字0)和O(字母O)

参考: 《代码大全》《编写可维护的js》
链接:https://github.com/airbnb/javascript#naming-conventions

相关文章

  • 前端开发规范:变量命名

    为什么要有规则? 很多程序员,包括我自己都很讨厌规则,但是不能一概而论 命名规则有他的好处: 要求你更多地按规矩行...

  • [知识点滴]Div+CSS命名规范大全

    Div+CSS命名规范(前端web开发命名规范)Div+CSS命名规范(一)窗体头:header内容:conten...

  • 前端入门必知开发规范

    本文主要从以下几个方面来概述前端的开发规范 1. 目录构建规范 2. 前端命名规范 3. 前端工作规范 4. 开发...

  • web前端的开发规范比较重要的知识点

    本文主要从以下几个方面来概述前端的开发规范 1. 目录构建规范 2. 前端命名规范 3. 前端工作规范 4. 开发...

  • 2019-06-23

    # 项目开发规范 ## 编码规范 ### 命名规范 - 普通变量名一律使用小驼峰,使用匈牙利命名法,私有变量以下划...

  • 好程序员web前端分享前端的开发规范

    本文好程序员主要从以下几个方面来概述前端的开发规范 1.目录构建规范 2.前端命名规范 3.前端工作规范 4.开发...

  • 前端规范

    常用html、CSS、javascript前端命名规范无论是从技术角度还是开发视角,对于web前端开发规范文档都有...

  • 项目开发规范参考

    现有项目的开发规范文档 目录 命名规则文件命名 HTML规范 CSS规范 JS规范变量申明简写代码性能优化注释规范...

  • 2019-06-24

    项目开发规范 编码规范 命名规范 普通变量名一律使用小驼峰,使用匈牙利命名法,私有变量以下划线开头, 常量需大写,...

  • 前端开发命名规范

    一,通用命名规则(必须) 二、变量命名规范(参考) 三、书写规范(必须) 普通代码段应该如下: 变量定义方法如下:...

网友评论

      本文标题:前端开发规范:变量命名

      本文链接:https://www.haomeiwen.com/subject/phsirxtx.html