其他系列文章导航
文章目录
前言
一个好的变量名能让读代码的人(包括写的人),身心舒畅,但一个“奇葩”的变量名可能会逼疯一个程序员。
今天是各种各样的奇葩变量名大赏!!!!!!
一、各种场景
(注:以下素材均采集自网络)
1.1 某企业机房的门牌
先上场的是某企业机房的门牌:
编辑
我猜这个主任可能是个胡建人。
1.2 阿里
第二位选手来自国内大厂-- 阿里:
编辑
正因为这个报错信息中的UnionPay
,导致隔壁银联的客服电话被打爆!
编辑
但实际上,这个开发想表达的意思是合并订单支付时的报错,但由于...
“合并支付”的英文是“combined payment”,出现这个问题是因为淘宝工程师不认识combined这个单词。
1.3 自带混淆功能的变量名
编辑
这是什么?乱码吗?
公布正确答案:
编辑
这又是什么?菜谱吗?
public String calculateTomAndJerryHappyTogetherTotalTimeAndReturnToThePreviousLevel(){ }
我以为你是段冗余代码:
xxxxxx = "网络操作维护中心(主任室)" # 消息详细信息
1.4 中文变量名
我宁愿使用中文变量名。
C语言选手:
int deit; //deit -> date int riqi; //riqi -> 日期
求求你们,放过我吧。
lv = 0x33FF33
这位来自Python的选手的变量名至少让我脱了100根头发,直到我在下文看到
red = 0xFF0033
,我才知道lv
是指绿色!
1.5 拼音命名
求求学长不要使用拼音命名了!!!
鄙人早就耳闻了拼音命名法,也不过如此!
let JianCeNianDu = ...; let NongTianChanLiang = ...; let DiKuaiBinaMa = ...; let FeiLiaoHanShuiLv = ...;
这样也能接受吧~
let jianceniandu = ...; let nongtianchanliang = ...; let dikuaibianma = ...; let feiliaohanshuilv = ...;
当看到实际的代码:
let jcnd = ...; let ntcl = ...; let dkbm = ...; let dkbm = ...; let flhsl = ...;
1.6 汉字变量
汉字变量真是香。
以前有个从销售部门转来的程序媛,可能因为英语底子薄,所以一直用拼音命名法声明变量:
class Dingdan { private String yuanliaomingcheng; private int chanpinshuliang; private double chanpinjiage; private long chanpinxiaoliang; private int shifoushouchu; }
后来开发老大忍不了了,表示拼音看不懂,让她以后使用中文作为变量名。
此后,该程序媛的代码就变成了这样的:
class 订单 { private String 原料名称; private int 产品数量; private double 产品价格; private long 产品销量; private int 是否售出; }
1.7 拼音命名法加声调
拼音命名法不就少个声调吗?
这位选手为变量加上了拼音的声调(1234分别代表āáǎà),你们读读看吧~
编辑
如今大多数编程语言都支持
Unicode
标识符,用汉字总比用拼音甚至拼音缩写好。
1.8 兜率宫的命名法
来自兜率宫的命名法。
the_eight_divinatory_sybmol_000 the_eight_divinatory_sybmol_001 the_eight_divinatory_sybmol_010 the_eight_divinatory_sybmol_011 the_eight_divinatory_sybmol_100 the_eight_divinatory_sybmol_101 the_eight_divinatory_sybmol_110 the_eight_divinatory_sybmol_111
你们知道这都这代表了啥值吗?
公布正确答案:
the_eight_divinatory_sybmol_000 = "坤" the_eight_divinatory_sybmol_001 = "震" the_eight_divinatory_sybmol_010 = "坎" the_eight_divinatory_sybmol_011 = "兑" the_eight_divinatory_sybmol_100 = "艮" the_eight_divinatory_sybmol_101 = "离" the_eight_divinatory_sybmol_110 = "巽" the_eight_divinatory_sybmol_111 = "乾"
好家伙,这是八卦图啊!
编辑
来自某游戏开发的代码。
此外,八卦图还有另一种写法:
trigram_sun
(乾),trigram_moon
(坤),trigram_water
(坎),trigram_fire
(离),trigram_wind
(巽),trigram_mountain
(艮),trigram_thunder
(震),trigram_marsh
(兑)。
二、总结
在编程过程中,好的变量命名是非常重要的。一个好的变量名能够清晰地表达变量的含义和作用,从而提高代码的可读性和可维护性。然而,有些时候,由于种种原因,开发者会使用一些非常奇特或者奇葩的变量名。本文将总结一些常见的奇葩变量名,并分析其原因和可能的改进方法。
2.1 奇葩变量名的例子
- 英文单词拼写错误型:例如,将“color”拼写为“clor”,或将“variable”拼写为“varibale”。
- 随意缩写型:例如,将“computer”缩写为“comp”,或将“information”缩写为“info”。
- 随意造词型:例如,“x1”,“y2”,“z3”,或者使用字母和数字的组合,如“a1”,“b2”,“c3”。
- 单词混淆型:例如,“string”和“integer”,或者“sum”和“total”。
- 使用下划线型:例如,“_1”,“_2”,“_3”。
- 使用特殊字符型:例如,“@”,“#”,“$”。
- 使用中文字符型:例如,“颜色”,“信息”,“用户名”。
- 使用表情符号型:例如,“😂”,“😁”,“🔥”。
2.2 原因分析
- 英语水平有限:对于一些开发者来说,使用英文单词可能会有些困难,因此他们可能会选择拼写错误的单词或者使用缩写。
- 追求简洁:一些开发者可能认为使用缩写或者简短的变量名可以使代码更加简洁。然而,过度追求简洁可能会导致代码的可读性降低。
- 缺乏命名规范:有些开发者可能没有接受过良好的编程规范培训,或者他们可能不知道应该遵循哪些命名规范。这可能会导致他们使用一些奇特的变量名。
- 创新过度:一些开发者可能想要通过使用独特的变量名来显示他们的创新精神。然而,过度创新可能会导致代码难以理解和维护。
- 缺乏责任感:有些开发者可能认为代码的可读性不重要,因此他们可能会使用任何他们认为合适的变量名。
2.3 改进方法
- 提高英语水平:对于那些因为英语水平有限而使用奇葩变量名的开发者,他们可以通过学习英语单词的拼写和用法来提高自己的英语水平。此外,他们也可以使用翻译工具来帮助自己理解并使用正确的英文单词。
- 遵循命名规范:开发者应该遵循通用的命名规范,例如驼峰命名法(Camel Case),以使得他们的代码更加易于阅读和理解。此外,他们也应该避免使用具有多种含义或者容易产生歧义的单词或者缩写。
- 使用代码审查:在开发过程中,代码审查是一个非常重要的环节。通过代码审查,开发者可以发现并纠正那些使用了奇葩变量名的代码。此外,代码审查也可以帮助开发者学习并遵循更好的命名规范。
- 接受编程规范培训:开发者应该接受良好的编程规范培训,以了解并遵循最佳的编程实践。这可以帮助他们避免使用奇葩变量名,并提高他们代码的可读性和可维护性。
- 提高责任感:开发者应该认识到代码的可读性和可维护性是非常重要的。他们应该对自己的代码负责,并尽可能地使其易于阅读和理解。