你在读开源代码的时候有没有碰到过那种正文?

What the fuck ?

Dude,WTF

Fuck this !

我碰到过,每次都不由得笑,心想老外可实是脾气中人,碰到不爽的处所就开骂,还间接写到正文中,以至代码中。

脏话越多,代码越好!  第1张

Bob大叔在《Clean Code》一书中循循善诱我们:要对变量、函数、类精心定名,制止耍小伶俐,别利用双关语。

那么在正文以至在代码中说脏话,会不会影响总体代码量量呢?

还实有人做了那个研究,Jan Strehmel,一个来自德国卡尔斯鲁厄理工学院的学生颁发了一篇论文,名称就叫《在开源代码中脏话的利用和代码量量之间有相关性吗?》

为了研究那个问题,做者从GitHub中抓取了3800个含脏话的C代码库,7600个不含脏话的C代码库,用自家的软件SoftWiPE阐发它们对编码尺度的遵守情况,逐个打分。

然后阐扬他在统计学的技能,用了中心极限制理,Bootstrapping,Significance testing,Jarque-Bera test,Shapiro-Wilk test,Q-Q plot,Kolmogorov-Smirnov test ......,一顿操做猛如虎,最初他得到了一个惊人结论:

包罗脏话的开源代码明显比不含脏话的量量更好!

脏话越多,代码越好!  第2张

(原论文有良多图,感兴趣的能够去看看)

面临那个成果,做者恐怕也没想到,他试图解释到:脏话代表了法式员对代码极其复杂性的感情!在写代码的时候,骂几句脏话,是缓解压力的一种体例,那反过来⼜能够提⾼留意⼒,从而提⾼代码量量。

当然,你可万万不要理解成只要在代码顶用了脏话,代码量量就会有进步,那就大错特错了。

那个成果让我立即想到了Linus Torvalds,他经常Fuck 那个,Fuck阿谁的,Linus在内核源码中对他人代码的评论就足以扭曲统计成果。

脏话越多,代码越好!  第3张

在Linux最早的几个版本中就呈现fuck, shit ,damn如许脏话,那似乎成了一种Linux的文化,在后续Linux源码中各类脏词不竭呈现。

在2005年7月28号,fuck*到达了高峰,足足呈现了68次,随后逐步下降。

而 idiot* 则一致是在迟缓上升,如今和damn* 不相上下,不分上下。

脏话越多,代码越好!  第4张

(脏话在每个版本中呈现的次数,点击看大图)

但是,那些脏话其实不影响Linux内核是优良代码的范例(详情拜见那一篇文章《漫画 | 因为用了C语言,Linux内核代码一团糟》),以Linus Torvalds为首的团队对代码构造和气概做了严酷的定义,在Review中对峙施行。

在Java社区,开源代码中的脏话也很多。

2018年,IBM 软件工程师 Adam Farley 给 OpenJDK 提交了一个 Bug ,说 OpenJDK 源码中脏话太多了,四处都是,OpenJDK是在专业范畴利用的,那太不适宜了吧?那不我特意提交了一个Changset把它们都删了。

脏话越多,代码越好!  第5张

脏话越多,代码越好!  第6张

脏话越多,代码越好!  第7张

3天后,颠末 OpenJDK 社区讨论,各人认为:

Damn 和 Crap 不算脏话!还有3 个 f**k,是上游的锅(回头会跟进处置),只要一个文件中的f**k,都是脏话,应该删掉。

为什么法式员喜好在源码顶用脏话暗示本身的设法呢?

代码是法式员每天都要面临的工做对象,对代码确实会呈现复杂的感情,有时候需要一种情感的宣泄。

看到一段深邃的,本身无法理解的代码,what the fuck?

好不容易把一段复杂逻辑的各类分收,鸿沟前提都搞定了,代码其实是乱,don't fuck with it !

花了很大的精神写完了逻辑,却发现有个异常无法处置,damn,damn,damn

....

咱们国内法式员似乎比力委婉,很少在代码中写脏话,更喜好吐槽公司,吐槽系统,是不是如许?

不外,必然要记住一点:当在代码评论中呈现脏话时,你就要小心了,不要随便动下面的代码,弄欠好就是个大坑!

参考材料:

https://cme.h-its.org/exelixis/pubs/JanThesis.pdf

https://www.vidarholen.net/contents/worDCount