你在读开源代码的时候有没有碰到过那种正文?
What the fuck ?
Dude,WTF
Fuck this !
我碰到过,每次都不由得笑,心想老外可实是脾气中人,碰到不爽的处所就开骂,还间接写到正文中,以至代码中。
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 ......,一顿操做猛如虎,最初他得到了一个惊人结论:
包罗脏话的开源代码明显比不含脏话的量量更好!
(原论文有良多图,感兴趣的能够去看看)
面临那个成果,做者恐怕也没想到,他试图解释到:脏话代表了法式员对代码极其复杂性的感情!在写代码的时候,骂几句脏话,是缓解压力的一种体例,那反过来⼜能够提⾼留意⼒,从而提⾼代码量量。
当然,你可万万不要理解成只要在代码顶用了脏话,代码量量就会有进步,那就大错特错了。
那个成果让我立即想到了Linus Torvalds,他经常Fuck 那个,Fuck阿谁的,Linus在内核源码中对他人代码的评论就足以扭曲统计成果。
在Linux最早的几个版本中就呈现fuck, shit ,damn如许脏话,那似乎成了一种Linux的文化,在后续Linux源码中各类脏词不竭呈现。
在2005年7月28号,fuck*到达了高峰,足足呈现了68次,随后逐步下降。
而 idiot* 则一致是在迟缓上升,如今和damn* 不相上下,不分上下。
(脏话在每个版本中呈现的次数,点击看大图)
但是,那些脏话其实不影响Linux内核是优良代码的范例(详情拜见那一篇文章《漫画 | 因为用了C语言,Linux内核代码一团糟》),以Linus Torvalds为首的团队对代码构造和气概做了严酷的定义,在Review中对峙施行。
在Java社区,开源代码中的脏话也很多。
2018年,IBM 软件工程师 Adam Farley 给 OpenJDK 提交了一个 Bug ,说 OpenJDK 源码中脏话太多了,四处都是,OpenJDK是在专业范畴利用的,那太不适宜了吧?那不我特意提交了一个Changset把它们都删了。
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
发表评论