关于程序里面的变量命名法
作为新手程序员,变量命名一直是我头疼的问题,我给变量命名一直是随缘,没有统一标准,命名五花八门、杂乱无章,甚至用a,b,c命名。可读性非常差。
最近看到一篇讲变量命名的文章,觉得很受用,决定总结一下。同时也是督促自己:以后写代码要规范,养成好习惯。
原文地址:https://github.com/kettanaito/naming-cheatsheet
-
使用英文。变量名称尽可能使用英文单词,避免使用a,b,c之类的意义不明的命名方式。
-
自己制定一种命名规则并且坚持使用下去。
-
命名遵循简短,直观,容易理解的规则。
-
避免缩写。
-
避免上下文重复。举个例子:
class MenuItem { /* Method name duplicates the context (which is "MenuItem") */ handleMenuItemClick = (event) => { ... } /* Reads nicely as `MenuItem.handleClick()` */ handleClick = (event) => { ... } }
-
命名要反映预期的结果。比如说:
/* Bad */ const isEnabled = itemCount > 3 return <Button disabled={!isEnabled} /> /* Good */ const isDisabled = itemCount <= 3 return <Button disabled={isDisabled} />
-
方法的命名
公式:
前缀 + 动作 (A) + 高语境(HC) + 低语境 (LC)
前缀:强化变量名的语境。常用前缀如下:
is:描述上下文特征或者状态状态,通常表示返回值是true或者false。
has:描述上下文是否有某个值或者状态,通常表示返回值是true或者false。
should:描述某个操作是正确的动作,通常表示返回值是true或者false。
min/max:描述最大或者最小值。
prev/next:描述当前上下文中前一个或者后一个的状态。
动作:负责描述函数的作用,常见的动作有下面几种:
get:立刻获取到数据。
set:设置值。
reset:将值重置,也就是变成初始值。
fetch:请求一个值,用于耗时较长的操作,比如网络http请求。
remove:从集合里面去除元素。
delete:删除操作,倾向于表达完全删除的意思。
compose:从已经存在的数据中创建新的数据,通常用于字符串,对象,函数。类似get。
handle:处理操作,比如处理点击事件,常用于回调函数。
语境:函数操作的对象。
8.可以使用英语里面的语法规则单数或者复数表示变量名。