网易首页 > 网易号 > 正文 申请入驻

奇葩的变量命名,真的不可取吗?

0
分享至

这两天公司准备用RPA技术(自动处理机器人)做几个小项目,”自动处理机器人”听起来是不是很高大上?其实懂的都懂,从本质上讲,就是用程序模拟人的行为。早在20多年,就有一款风靡整个游戏圈的软件,就是RPA的思路。按键精灵,游戏玩家应该都不陌生吧.

我让技术小伙这两天看看文档和示例DEMO,先搞个小玩意出来,评估下。我正闷头看资料呢(其实就是摸鱼),突然一声狂笑,吓了我一跳。

我骂道,“搞什么呢?吓我一跳。”

技术小伙:段哥,我给你看个爆笑的。

然后,把截图甩给我了。

我一看,就是一段RPA平台的示例代码,没什么啊。

他说,你往下看,那几个变量。。。

我一看,当时就笑喷了。。。

变量名是这样定义的:

当月收入= 4258.00;

年龄= 0;



满屏都是用中文进行变量定义。
小伙很无语,说道:段哥还能这样搞吗?

我说:别人怎么搞,我管不了,但你这样搞,我绝对把你打死。

他笑道“我是第一次见到用中文这么命名变量的,真把自己当成了吴军的易语言了”,说完又忍不住狂笑起来。

我觉得他误解我的意思了,我说你是不是觉得我特别反对中文变量?

他说是啊,你刚才不是说了嘛。

我说你错了,我不反对,但要看场景。

他吃惊道,命名个变量还要看场景?

我没说话,点了根小快乐,禁不住回想起二十多年前学编程时,所有的计算机书上都统一这样一段话:“变量只能以下划线、数字、字母命名,并且数字不能放在首位”。

所以这么多年,我从来也没想过用中文来命名变量,我的团队也都没有用中文命名过变量的。

这里必须要说一下unicode编码,这个编码规范诞生于1987,诞生的很早,但是成为事实标准,在国内完全普及,应该也就是零几年之后的事吧。

自从unicode字符集被全球所有厂商和各个语言的标准委员会逐步采纳后,事实上,我们的母语“汉字”是完全可以用来作为变量名使用的。

我想到前年春天半途接手的一个项目,都不能算半途,几乎都快开发完成了。

里面有很多“sb”作为前缀的变量,不仅变量,还有函数、数据库表里面的很多字段等等。

如果你每天对着一屏幕的的“sb”,估计你心情也不会好。

当时我知道这个“sb”肯定是一个很重要的缩写,我就问之前那个小伙,“sb”到底是什么?你怎么会起一个这样的前缀?

他说,“是社保的缩写啊”。。。”

社保的缩写。。。。我当时真想给他一脚!

你缩写成sb,还不如直接写成“社保”更容易理解些!

你猜他怎么说?

他说“shebao”太冗长了,至于“社保”,我压根不知道变量还能起中文!

我知道他其实就是为了图省事,他连“shebao”都不愿意多写,能愿意打汉字?说不知道unicode编码,不知道变量能起中文,打死我都不信。



如果小伙伴就这样干了,就问你服不服。。。

其实,中文变量的缺点我就不说了,我就说一个场景,如果在某种情况下,英文的名字实在不好表达,尝试中文变量也未尝不可。不过整个团队一定要做好约定,不能是个人行为,想怎么写就怎么写,否则像下面这样干,我就问你怕不怕,麻不麻。。。



你还别说,当然能正常编译,输出效果杠杠滴…



如果整个团队做好约定,我觉得特殊情况下,用中文可能是最好的解决方案.因为太多小微团队,整体英文水平有限,(这个是事实,你看网上好多做编程培训的,有几个单词念标准的?连最基本的value,都能念成“维留”,file能念成“非欧”,其实我也是个三脚猫,哈哈)

正好一个活生生的例子,下面这个变量,鬼知道你这是什么的缩写?



实际上这是一个特定的业务场景下的用语:政企简报-政企市场携转情况汇总日报1

这种情况在政府项目里,是最平常的情况,需要非常详细具体的描述,不然后期维护很麻烦,也不可能去写什么详细的文档,你见过哪个外包公司或者小微技术团队有很完善的项目开发文档?所以,在这种情况下,完全可以不用拼音嘛.英文是别想了,简单的单词完全没问题,具体的业务场景下的名字,用英文是自找苦头。

每次说道政府项目,我都会不由自主的想到一个段子我一个小伙伴以前入职过一家专门做政府项目的外包公司,第一天办理入职手续、搭好生产环境,第二天上午熟悉代码熟悉,下午就离职了,我问为什么?他说代码根本没法看,全是汉语拼音缩写,而且还没注释,最重要的是老人们只熟悉自己写的,别人写的也不清楚,问老大,老大说“你先猜猜看,判断判断”。。。

我当时笑的肚子疼,但是这是没办法的事,政府项目中,大多数都是专有名词,没办法翻译成简单易懂的英文,如果强行翻译成英文,第一大多人是根本不认识这些专有名词的,再有就是翻译完之后对应的英文真的很长很长,如果你这样干了,我不知道别的项目老大怎么做,反正我会让你滚蛋的。。。最起码我看不懂。所以就清一色拼音首字母了。不然拼音和英文混用会更让人崩溃。特别是在政府项目的接口、数据库设计里,好多是拼音做前缀,然后下户线跟英文的,我是看一次,掉一次头发。。。。。。

下面这个一点都不夸张,



我就问你与其这么受罪,不如直接用中文得了,是不是?

int deit; //deit -> date

int riqi; //riqi ->日期

你要真不愿意或者不知道日期的英文单词,我觉得你用”日期”做变量名,都比”riqi”要更可读点!

这都不算什么,我还见过更牛×的团队,为了”代码风格统一”,统一约定所有变量都用拼音命名,(不是个例,只要你在小团队呆过),然后就出现了:

lv = 0x33FF33;

在我头发快秃之前,终于猜出来了这个变量表示的是”绿”!老哥你如果实在不愿意”green”,就直接定义个”绿”做变量,不也挺得劲的吗?



你能猜出来这些属性是什么含义吗?我相信你猜不出,我也猜不出,
后来她们项目的老大实在忍受不了了,表示快疯了,允许她以后使用汉字命名变量。然后,该程序媛的代码就变成了这样:



我说,既然用汉字命名变量了,还留一个类名干什么呢?不如连类名都直接用”订单”来表示一了百了了…

最后说一个更绝的事,我都搞不清楚这老几到底是不是故意试验一把“防御式编程”的感觉,以前“防御式编程”是指程序员在写一个功能时,把所有的可能都设想到,并做了应对,这是一种编程策略,但是最近,“防御式编程”变成了一种调侃,是指故意把代码写得让别人看不懂,没法维护,这样公司就不敢轻易裁掉我(当然不是真的,只是一种调侃)

就说这个老几写了一个方法,方法名是haisong(),你仔细琢磨琢磨,让你天马行空的猜这个大概是干啥的……

他的解释是,hair是不是中文”发”?song就是”送”,组合在一起就是”发送”的意思…..你不要笑,你也不要觉得我是在编,他就是没用send_XXXXX之类规范,就问你牛叉不牛叉?

其实,我的个人态度是最好有英文规范命名,如果特殊情况,特别是政府项目,其实统一采用中文命名是最好的一种解决方法,远远比拼音大法、拼音和英文混合大法、拼音缩写大法更适合。不然整个团队都痛苦。

变量命名是编程中时时刻刻都要面对的,对开发团队而言,最好要有一套合理的命名规范。我不但不否定中文命名,在某种情况下,甚至觉得中文是最合适的命名规范,特别是在对接政府项目时,复杂的各种专有名词更适合用中文命名。

所以说,中文命名不奇葩,变量命名也不要陷入思维定式。一家之言,欢迎讨论。

段誉,2024年1月24日,写于合肥。

声明:个人原创,仅供参考

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
俞敏洪就个人言论道歉,依然信任孙东旭,网友:罗永浩又说中了!

俞敏洪就个人言论道歉,依然信任孙东旭,网友:罗永浩又说中了!

体制内老陈
2024-06-07 16:41:28
0-0大冷门,世界第203爆发,零封了世界第29,终结13连败

0-0大冷门,世界第203爆发,零封了世界第29,终结13连败

侧身凌空斩
2024-06-07 01:55:12
胡锡进连发三文 炮轰国人涂鸦靖国神社:污染爱国 制造分裂

胡锡进连发三文 炮轰国人涂鸦靖国神社:污染爱国 制造分裂

鬼谷子思维
2024-06-06 16:15:20
将船拖走!中方下达最后通牒!西部战区司令被撤职,菲方彻底慌了

将船拖走!中方下达最后通牒!西部战区司令被撤职,菲方彻底慌了

慎独赢
2024-05-24 13:05:54
李银桥透露:毛主席私下对粟裕有看法,晚年时用6个字评价他

李银桥透露:毛主席私下对粟裕有看法,晚年时用6个字评价他

小啾咪侃侃史
2024-06-06 18:26:35
将近40岁满脸褶,却尬演18岁少女,是谁给了她“强行装嫩”的勇气

将近40岁满脸褶,却尬演18岁少女,是谁给了她“强行装嫩”的勇气

娱乐圈十三太保
2024-05-28 13:56:53
40度以上,大范围高温确定将出现,降雨也来了,预报:3波下不停

40度以上,大范围高温确定将出现,降雨也来了,预报:3波下不停

环球科学猫
2024-06-07 11:11:16
大S妈妈凌晨暴躁发文:连用四个“管不了”,自曝将会离开烦人地

大S妈妈凌晨暴躁发文:连用四个“管不了”,自曝将会离开烦人地

娱乐贴士站
2024-06-05 17:53:28
失业率还是爆了

失业率还是爆了

求实处
2024-06-06 23:14:51
比亚迪这一枪,打到丰田心口上了

比亚迪这一枪,打到丰田心口上了

互联网.乱侃秀
2024-06-05 10:14:34
你无意中发现了不得的事?网友:大保健里遇见嫂子

你无意中发现了不得的事?网友:大保健里遇见嫂子

王二哥老搞笑
2024-05-31 14:56:38
哪里冒出这么多恨国党?“俄罗斯S400不行?等于中国HQ9不行”?

哪里冒出这么多恨国党?“俄罗斯S400不行?等于中国HQ9不行”?

军武次位面
2024-06-07 12:03:50
38岁辛芷蕾瑜伽照,腰间没有一丝赘肉,还有腹肌!

38岁辛芷蕾瑜伽照,腰间没有一丝赘肉,还有腹肌!

瑜伽解剖学
2024-06-04 17:35:10
一句“你来劲了是吧”,让网友们把梁艳春的老底全扒完了

一句“你来劲了是吧”,让网友们把梁艳春的老底全扒完了

清晖有墨
2024-06-06 10:40:39
狂轰42+12+6!绿军交易果然赌赢了,你自己不要的人,把你打爆了

狂轰42+12+6!绿军交易果然赌赢了,你自己不要的人,把你打爆了

康泳哥看体育
2024-06-07 22:23:47
西班牙公布欧洲杯26人最终名单:3将临阵被裁!巴萨17岁天才落选

西班牙公布欧洲杯26人最终名单:3将临阵被裁!巴萨17岁天才落选

我爱英超
2024-06-07 18:49:16
大S又作妖!神操作或想与汪总重燃爱火,网友纷纷喊话马筱梅!

大S又作妖!神操作或想与汪总重燃爱火,网友纷纷喊话马筱梅!

古希腊掌管月桂的神
2024-06-06 22:53:55
两性科普:和结扎后的男人do i,是种什么样的体验?

两性科普:和结扎后的男人do i,是种什么样的体验?

坟头长草
2024-06-06 12:17:41
受贿1099万余元,贵州省粮食和物资储备局原正厅级干部吴青春获刑十年六个月

受贿1099万余元,贵州省粮食和物资储备局原正厅级干部吴青春获刑十年六个月

界面新闻
2024-06-07 18:29:44
细扒印尼排华,30万华人遭屠杀,我国出乎意料不出兵帮忙始末?

细扒印尼排华,30万华人遭屠杀,我国出乎意料不出兵帮忙始末?

光头哥的头
2024-01-07 10:57:32
2024-06-08 02:08:49
段誉和语言
段誉和语言
另类技术人段誉分享编程经验的点点滴滴。
6文章数 4关注度
往期回顾 全部

科技要闻

6家大模型抢答高考作文,谁是你心中的Top1

头条要闻

拜登称"一带一路"倡议已成为令人讨厌的计划 中方回应

头条要闻

拜登称"一带一路"倡议已成为令人讨厌的计划 中方回应

体育要闻

优势在我?中国足球有自己的节奏

娱乐要闻

汤唯抵达巴黎将担任奥运火炬手

财经要闻

身陷退市股的投资者:我的钱瞬间没了

汽车要闻

2.0T混动售20.98万元起 福特蒙迪欧运动版上市

态度原创

本地
艺术
手机
家居
数码

本地新闻

我和我的家乡|踏浪营口,心动不止一夏!

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

手机要闻

华为迎来双喜:鸿蒙NEXT暂未有广告,华为Mate70系列主摄变清晰!

家居要闻

柔和婉转 让阳光洒满空间

数码要闻

消息称 iOS 18 和 macOS 15 将从过去寻找经典壁纸

无障碍浏览 进入关怀版