那些惊为天人的变量名,真是奇葩!

点击关注公众号,Java干货及时送达e5ffba0710b92e54729135ee6bf7a972.png

f4a54d94a737b543314bdb929b05d121.png Spring Cloud 微服务实战(最新版)

bc87e22828ae9900aaf4dd03201a56eb.png Spring Boot 3.x 实战,不能再全了!

3ca2930b831af62f904ffb8593e50f01.png 2023 全新 Java 面试题(2500+)


来源:麦叔编程

作者:小K

前言

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

今天是奇葩变量名大赏

正文

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

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

52ca7a9f8bb7dde90f4c8d51a734e6a4.png

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

推荐一个开源免费的 Spring Boot 实战项目:

https://github.com/javastacks/spring-boot-best-practice

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

90a71dfc7e1ab12df31881c452207df3.png

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

66b6ffd8fd1f259ec4ecd36bff9ad805.png

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

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

自带混淆功能的变量名

f7bc597551b491026521c0c13a6a85bc.png

这是什么?乱码吗?

公布正确答案:

1097d879b0ac5d8edb44df58b3e796c8.png

另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。

这又是什么?菜谱吗?

public String calculateTomAndJerryHappyTogetherTotalTimeAndReturnToThePreviousLevel(){

}

我以为你是段冗余代码:

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

我宁愿使用中文变量名

C语言选手:

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

求求你们,放过我吧。

lv = 0x33FF33

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

e5eeffa65b11cc4d35f273d0afbd7f80.png

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

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

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

汉字变量真是香

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

class Dingdan {
  private String yuanliaomingcheng;
  private int chanpinshuliang;
  private double chanpinjiage;
  private long chanpinxiaoliang;
  private int shifoushouchu;
}

后来开发老大忍不了了,表示拼音看不懂,让她以后使用中文作为变量名。23 种设计模式实战(很全)分享给你学习下。

此后,该程序媛的代码就变成了这样的:

class 订单 {
  private String 原料名称;
  private int 产品数量;
  private double 产品价格;
  private long 产品销量;
  private int 是否售出;
}

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

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

b9d5d1c519268705c5adf0afb672a865.png

如今大多数编程语言都支持Unicode标识符,用汉字总比用拼音甚至拼音缩写好。另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。

来自兜率宫的命名法

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 = "乾"

好家伙,这是八卦图啊!

3bda199add0f3c75aae76549116536ee.png

来自某游戏开发的代码。

此外,八卦图还有另一种写法:trigram_sun(乾),trigram_moon(坤),trigram_water(坎),trigram_fire(离),trigram_wind(巽),trigram_mountain(艮),trigram_thunder(震),trigram_marsh(兑)。

最后

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

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


推荐课程

最后推荐下栈长的三个最新课程,不管是用来面试跳槽,还是工作所需,都是相当有必要的,一次订阅,永久学习

Java 17 新特性实战课:

a0f0b58b1e20a0b75baf8441d2c9ab2c.png

Spring Boot 3.x 核心技术课:

fe0fc830a4a9c55f1342e1fc188ecec6.png

Spring Cloud Alibaba 微服务实战课:

b1672c864a23b700b220e07424689ea2.png

猜你喜欢

转载自blog.csdn.net/youanyyou/article/details/132913451