开篇点题

很多同学写代码,或因技术菜、或因项目急,或因英语不好,种种原因,导致命名变量时大脑一片空白,好一点的会用些简单的单词,实在想不出来就用拼音代替。

真的,绝了。

这篇文章,就是帮助同学更好更快地命名变量。主要讲下优秀的变量命名是怎样的,以及列出命名变量时常用的单词词汇。

<aside> ⛰️ We are poets and artists. Yeah, We write poems not shit. 我们是诗人,我们是艺术家。对,我们是在作诗。 — idea小时

</aside>

最佳的变量名

通常,对变量的描述就是最佳的变量名。 —《代码大全(第二版)》

<aside> 📘 《代码大全》这本书不要看名字很土,感觉就像小学不知道名字的出版社的《作文大全》,实际上是翻译的问题,英文原版名字叫《Code Complete》,意为“代码完成“,是微软公司出的一本书,很有权威性。

</aside>

我的观点和本书作者不谋而合。 — idea小时

四舍五入 → 我也是个“大佬”,嘿嘿。😘

用对变量的描述来命名变量

集合 :

可以用XXXListXXXMapXXXSet来表示,例如menuListfieldListreferenceMap

也可以用集合表示的事物的复数形式,XXXsXXXes,例如:rowscolsusersdetailsitems

特殊状态:

开发中经常遇到需要处理的数据,比方需要进行过滤挑选的数据、选中的数据、未保存的数据、当前数据,这类变量必须在前面加上修饰词、限定词。例如:filteredDetailsselectedRowsunSavedRecordscurrentIndextotalCountdefaultPasswordcommonTargetexpiredKeys

标志性变量:

这类变量通常是布尔变量,只有truefalse。表示是否可以用isXXXnotXXXflag例如:isLoginisLast;表示开关可以用enabledisableswitchOn、;表示成功失败,可以用succeedfailed

带层级关系变量:

这种变量在处理嵌套数据的时候最常见,可以使用表示层级关系的形容词修饰。

例如:outerContainernestedExceptioninnerPagewrapedDataincludedFilescoveredDetailparentObjenclosedArea

特定范围:

范围类的形容词包含时间、地点、位置等几大类。

时间有现在、过去、未来,例如:lastestOperation

地点有国内、国外、当地、远程,例如:localMachineremoteClient

位置有上下左右前后,例如:currentItemleftSidetopPanel

对象属性:

对于对象的属性名,最好加上对象本身的名字,用xxxProperty表示,例如:userInfoobjIdtabNamerequestDatasysOptiontokenTime

另一种表示形式是把属性名放在对象名之前,用xxxOfXxx,例如lengthOfSubstrcomplexcityOfPasswordfieldsOfObj

交互型变量:

系统间交互、方法间调用都可以用下面这种形式来体现交互性。例如:responseForPos、、tasksToExecute