本文目录导读:
笑不活了,这代码是来搞笑的吧?

如果说程序员有“局”,那一定不是饭局,也不是酒局,而是——LOL代码局。
不是那个召唤师峡谷里的“LOL”,而是当你打开同事写的代码时,嘴里不由自主蹦出的那一声:“LOL?!”(笑死我了)。
在代码世界里,总有一些“灵魂选手”,他们用最清奇的脑回路、最诡异的命名、最匪夷所思的逻辑,让每一个reviewer都陷入“我是谁?我在哪?这代码为什么能跑?”的哲学三连,就带大家走进几场经典LOL代码局,感受一下程序员日常的“快乐源泉”。
第一局:变量命名鬼才
某后端项目中,有人看到这样一段代码:
a = 1 b = 2 c = a + b print(c)
你问为什么不用有意义的变量名?回答很干脆:“因为我不想让字母表寂寞。”
更绝的还有:
let dog = getUserData(); let cat = dog.address; let bird = cat.city; // 然后整个项目再也没有动物出现
问为什么叫“dog”?答:“因为狗是人类最好的朋友,数据也是。”
行吧,你高兴就好。
第二局:注释比代码还长
// 这里本来要写一个排序算法,但是我实在不知道怎么写,
// 想了想,反正数据量也不大,我就用冒泡吧。
// 但冒泡写起来也麻烦,所以干脆调用了Collections.sort。
// 如果这个代码出bug了,请大家不要怪我,要怪就怪算法导论。
// 我爱你,世界和平。
String[] arr = {"b", "a", "c"};
Arrays.sort(arr);
这大概是“代码未动,求生欲先行”的典范,程序员真正表达的不是逻辑,而是“我尽力了”。
第三局:防御性编程的极致
某前端页面,为了防一个空指针,写了这样一段:
if (data && data.list && data.list.length > 0) {
return data.list.map(item => item.name);
} else {
return [];
}
听起来很正常对吧?但下面是真实的前任代码:
if (data != null) {
if (data.list != null) {
if (data.list.length > 0) {
return data.list.map(item => item.name);
} else {
return [];
}
} else {
return [];
}
} else {
return [];
}
深得“套娃”精髓,每一层都写着“我怕了”,负责review的老程序员看到后只说了一句:“你这不是在防空指针,你是在防地球爆炸。”
第四局:能用就行,别问
有段代码是这么写的:
def check_password(pwd):
if pwd == "admin" or pwd == "123456" or pwd == "root":
return True
return False
安全评审时,开发小哥理直气壮:“这三个密码是我测试用的,后来忘了删。”
“那为什么还不删?”
“因为项目急着上线,能跑就行,LOL。”
只能摇头苦笑:这不是代码局,这已经是“代码杯”决赛级别了。
第五局:真·LOL代码
给大家分享一段令人窒息的代码,据说出自某实习生之手:
printf("Hello world!");
// LOL LOL LOL LOL LOL
没错,注释里写满了“LOL”,你说他有什么技术含量?没有,但你要说他不快乐?那绝对是他人生中最快乐的一局。
LOL代码局,局局有惊喜
每一个程序员在代码生涯里,都经历过无数场“LOL代码局”,这些代码或许不完美,甚至让人哭笑不得,但它们也构成了我们枯燥编码生活中难得的笑点,每当遇到这样的代码,我们嘴上说着“这是啥玩意儿”,心里却默默感谢:谢谢你,让我今天的工位充满了快活的气息。
如果你也遇到了一段让你笑不活的代码,别急着生气,记住一句话:
代码如人生,能跑就是神,LOL,就完了。

