这些 “不要脸” 的程序员背后捅刀,告诉我们为什么要好好写注释
代码注释的作用,不需要对程序员解释了。
有时在查看他人代码,能看到一些令人不禁大笑的注释。比如:
Bill Poucher 的分享(他是一位计算机科学教授)
我见过的最佳注释是以 HTML 格式写在源代码里的,任何想要阅读的人都能看得见。我管它叫“Cerny效应”。
曾经有一位很有天赋的捷克研究生 Tomas Cerny,在 Baylor 大学 ICPC(国际大学生程序设计竞赛)技术研发部主任 Jeff Donahoo 博士的领导下,负责将另外一位很聪明的研究生的设计原型转换成实际产品。
有一天,Jeff 到我的办公室跟我说,在他们ICPC实验室,冷战的格局正在形成。因为有人在源代码的注释里写了一些话,冒犯到了其他人。(为了看看情况,)我就随他一起去找了Tomas。
Jeff去了以后就开门见山地问:“Tomas,你是不是在Joel的代码上加了注释,说他的代码是愚蠢(retarded)的?”Tomas倒是很坦白地说:“是的。”Jeff又问:“你凭什么这么写呢?”Tomas回答说:“因为(他的代码)确实愚蠢(retarded)啊!”
我就站在一边看着,Tomas一脸懵逼,Jeff强压怒火,场面真是大写的尴尬。接着,Tomas拿出了他的《捷克语-英语词典》,打开,上面写着,词义:“开发中(under developed):retarded”(译注:其实retarded这个词有两个意思,既有“弱智,愚蠢”的意思,也有项目未完成,正在开发中的意思,这也是造成这个误会的原因。)
是的,开发确实还没完成……后来,Tomas就把注释修改为了“建设中(Under construction)”。然后我和Jeff都对Tomas拓展英语能力的热情捧腹大笑。我至今不知道当年这个误会是不是真的解决了。
跟你们说,我和Jeff都很爱讲这个段子,后来每当我们把Tomas介绍给ICPC新成员的时候,就一定会讲这个段子。Tomas现在已经是布拉格捷克技术大学的计算机科学系教授了,他还是学校ICPC技术部的奠基人,也是我非常好的朋友。
Tomas不仅在Baylor大学获得了硕士学位,而且他在这里找到了他的伴侣,一位音乐家,同时也是奥运会级别的田径选手。当然,这是另外一个关于奥林匹克的爱情故事了。
ICPI-ACM国际大学生程序设计竞赛,由IBM赞助。
Anirudha Bose 的分享:
谢尔盖.布林(Google的联合创始人之一)在斯坦福大学念计算机科学博士学位的时候,他的简历里并不含任何”待遇要求“(Objective)的字眼。但当你去查看他的简历的HTML源代码的时候,你会看到(他在简历HTML源文件里明确写了“待遇要求”,只是用注释注掉了,在浏览器页面上不显示。):
(其“待遇要求“的内容是:办公室要大,挣钱要多,干活要少。如果能经常去奇妙的地方旅行而且还能给报销的话,那就更好了。)
Abhinav Upadhyay 的分享
/ You are not expected to understand this /
/ 我们并不指望你能看懂这段话 /
这段注释并不是我亲眼所见,但是它在网上传得很厉害。这段注释是出自于贝尔实验室的Unix系统第六发行版,并在《Lions’ Commentary on UNIX 6th Edition, with Source Code》这本书中标注出来的。
代码和标注的细节如下:
Liu Wei 的分享[译注:这明显是一位来自中国的工程师]:
Michael Dehmlow 的分享
我新入职了一个公司,然后发现了一段三周之前写的注释,这段注释是项目之前的研发团队写的,写的日期就是我来公司面试和正式入职的这段期间。
我有幸在原来负责这个项目的先生们被炒鱿鱼的前一天被派来参与这个项目。
转自:C语言编程头条号