⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 麦叔编程 「小K」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

前言

一个好的变量名能让读代码的人(包括写的人),身心舒畅,但一个“奇葩”的变量名可能会逼疯一个程序员。

今天是奇葩变量名大赏

正文

(注:以下素材均采集自网络)

先上场的是某企业机房的门牌:

我猜这个主任可能是个胡建人。

第二位选手来自国内大厂-- 阿里:

正因为这个报错信息中的UnionPay,导致隔壁银联的客服电话被打爆!

但实际上,这个开发想表达的意思是合并订单支付时的报错,但由于...

“合并支付”的英文是“combined payment”,出现这个问题是因为淘宝工程师不认识combined这个单词。

自带混淆功能的变量名

这是什么?乱码吗?

公布正确答案:

这又是什么?菜谱吗?

public String calculateTomAndJerryHappyTogetherTotalTimeAndReturnToThePreviousLevel(){

}

我以为你是段冗余代码:

xxxxxx = "网络操作维护中心(主任室)" # 消息详细信息

我宁愿使用中文变量名

C语言选手:

int deit; //deit -> date
int riqi; //riqi -> 日期

求求你们,放过我吧。

lv = 0x33FF33

这位来自Python的选手的变量名至少让我脱了100根头发,直到我在下文看到red = 0xFF0033,我才知道lv是指绿色!

求求学长不要使用拼音命名了!!!

鄙人早就耳闻了拼音命名法,也不过如此!

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 = ...;

汉字变量真是香

以前有个从销售部门转来的程序媛,可能因为英语底子薄,所以一直用拼音命名法声明变量:

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 是否售出;
}

拼音命名法不就少个声调吗?

这位选手为变量加上了拼音的声调(1234分别代表āáǎà),你们读读看吧~

如今大多数编程语言都支持Unicode标识符,用汉字总比用拼音甚至拼音缩写好。

来自兜率宫的命名法

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(兑)。

最后

通过今天的文章,大家都学废如何声明变量了吗?

你们还见过哪些惊为天人的变量名,一起分享出来,让我们大家都学习(开心)一下。

文章目录
  1. 1. 前言
  2. 2. 正文
    1. 2.1. 第二位选手来自国内大厂-- 阿里:
    2. 2.2. 自带混淆功能的变量名
    3. 2.3. 我宁愿使用中文变量名
    4. 2.4. 求求学长不要使用拼音命名了!!!
    5. 2.5. 汉字变量真是香
    6. 2.6. 拼音命名法不就少个声调吗?
    7. 2.7. 来自兜率宫的命名法
  3. 3. 最后