@ 2013.07.22 , 17:30
41

Quora 精选:代码里的精彩注释

提问:计算机编程:有没有源代码里好玩的注释的例子

回答:Alex Regueiro,(1232票)

在 StackOverflow 上曾经有过一个同样问题的帖子,不过有个过份热心的管理员大姨妈删掉了那个帖子。

好在我非常幸运可以看到那些被删掉的答案,这里是我最喜欢的几个:

//
// Dear maintainer:
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 42
//

// 亲爱的维护者:
//
// 如果你妄图在这里做点「优化」,
// 然后发现这简直就是坨屎
// 然后发现这个决定是个巨大的错误
// 请增加下面的变量,
// 这样可以提醒下一个维护者
//
// total_hours_wasted_here = 42
// (在这里浪费的时间共计 = 42 小时)

// When I wrote this, only God and I understood what I was doing
// Now, God only knows

// 当我写下这些东西的时候,只有上帝和我知道我写了啥
// 现在呢,只有上帝知道了
// 现在呢,上帝保佑我能看懂它们
// 感谢蛋友 @亿万潮湿 的指正

// sometimes I believe compiler ignores all my
comments

// 有时候我觉得编译器根本无视我的
注释

(小编: 梗在于这个「注释」的位置,这下编译器绝对不会无视了……)

// I dedicate all this code, all my work, to my wife, Darlene, who will
// have to support me and our three children and the dog once it gets
// released into the public.

// 这些代码都是我的心血,我的所有工作,献给我的妻子,达莲娜
// 她将一直支持我,包括我们的三个孩子,一条狗
// 直到这个软件发布为止
// 从软件发布以后

// drunk, fix later

// 喝多了,等会儿再修

// Magic. Do not touch.

// 神代码,别动。

(小编:其实是他也不知道这里为什么编译通过了,自己都不敢动)

#define TRUE FALSE
// Happy debugging suckers

# define TRUE FALSE
// 好好享受吧,混蛋

(小编:这是个变态,把「真」定义为「假」……)

long john; // silver

(小编:呵呵……冷,自己点

long long ago; /* in a galaxy far far away */

long long ago; /* 在很远很远的某个星系*/

(这么写,在 C99/C++0x 里可是编译不过的哟)

/**
* Always returns true.
*/
public boolean isAvailable() {
return false;
}

/**
* 返回值永远为真.
*/

public boolean isAvailable() {
return false;
}

// no comments for you
// it was hard to write
// so it should be hard to read

// 没注释给你看
// 因为程序很难懂
// 好不容易写出来的
// 所以注释也一定很难看懂的
// 你花点力气看也是应该的
// 感谢蛋友 @亿万潮湿 的指正

options.BatchSize = 300; //Madness? THIS IS SPARTA!

options.BatchSize = 300; //疯了? 这里可是斯巴达!

/**
* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.
*/

/**
* 来到这里的勇敢的灵魂啊:你真是被选中之人,
* 勇敢的码农骑士啊,你不辞辛劳不眠不休,
* 来此拯救屎一般的代码。你是王的男人,真救星也
* 我说:我永不放弃你啊,永不打击你,
* 永不逃走把你甩啊,永不刨坑让你哭,
* 永不笑着说分离啊,永不扯淡把你骗。
*/

本文译自 Quora by Alex Regueiro,由译者 Junius 基于创作共用协议(BY-NC)发布。


给这篇稿打赏,让译者更有动力
支付宝打赏 [x]
您的大名: 打赏金额:

3.7
赞一个 (16)

TOTAL COMMENTS: 41+1

  1. 人间肉球
    @4 years ago
    2103836

    谁懂程序员的寂寞…

    [226] XX [0] 回复 [0]
  2. ida529200
    @4 years ago
    2103840

    看得懂的都是一肚子满满的悲伤吧?

    [109] XX [0] 回复 [0]
  3. 新浪关注HOBO坚仔
    @4 years ago
    2103842

    程序员是最有情趣的,恩!

    [43] XX [0] 回复 [0]
  4. 2103848

    统计下,有多少人看到最后三排注释的时候跟着唱出来了

    [39] XX [7] 回复 [0]
  5. 哥特幽灵
    @4 years ago
    2103854

    漫漫码海中有很多这样的奇葩被埋没了……………
    leader :胡思乱想时间到了,赶紧给我码城墙!

  6. 2103860

    我一个同学的注释:

    //这个参数没什么用,写着好看

    他是写个代码都能卖萌啊…

    [46] XX [8] 回复 [0]
  7. Meilva
    @4 years ago
    2103866

    看的我是热泪盈眶

  8. diablox
    @4 years ago
    2103880

    http://stackoverflow.com/questions/184618/what-is-the-best-comment-in-source-code-you-have-ever-encountered?page=1&tab=votes#tab-top

  9. 2103884

    我突然觉得我能看懂是件杯具…..

  10. diablox
    @4 years ago
    2103886

    stackoverflow上那个只是关了,并没有删,还能看
    类似的还有这个:
    http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read?tab=votes#tab-top

  11. callices
    @4 years ago
    2103904

    热泪盈眶

  12. 当年的处男
    @4 years ago
    2103922

    刚开始学编程的时候根本不注释,回过头就忘了自己写的是什么。。
    现在办公室电脑还必须用C89,有时候顺手就写了//注释,然后就没有然后了。。。

  13. OlingCat
    @4 years ago
    2103924

    虽说都是老梗,但Junius大译出来别样新奇啊….

  14. 2103926

    注释格式很规范,好评!

  15. 2103966

    // no comments for you
    // it was hard to write
    // so it should be hard to read

    // 没注释给你看
    // 因为程序很难懂
    // 所以注释也一定很难看懂的

    这段我想应该是

    // 我不想写注释
    // 因为这段程序写起来太烦了
    // 所以读他的你也得享受烦躁

    [15] XX [5] 回复 [0]
  16. 铅笔
    @4 years ago
    2103998

    去看看西乔的博客,神秘的程序猿系列漫画吧

  17. 2104028

    小编翻译的。。。
    第三个,once,不是直到发布,而是从发布时起

    最后一个,有个槽点,I say this后面是歌词啊。。。

  18. 2104050

    long long ago; /* in a galaxy far far away */
    long long ago; /* 在很远很远的某个星系*/
    (这么写,在 C99/C++0x 里可是编译不过的哟)

    为毛编译不过?long long是C99定义的64位整型啊,应该是VC6过不了吧。。。

    [14] XX [1] 回复 [0]
  19. 小小样
    @4 years ago
    2104064

    程序猿飘过~~~ dsmwc.7caiedu.com/

  20. Junius_Lou
    @4 years ago
    2104068

    @rv: 改了

  21. 2104088

    “王的男人”。。。你够了

  22. 西奥笑
    @4 years ago
    2104146

    [查看原图]

    很久很久以前在无聊图里看到,然后保存了下来。现在我是一名程序员……

    [88] XX [0] 回复 [0]
  23. Junius_Lou
    @4 years ago
    2104160

    @西奥笑:

    原来是火星……窃以为我翻得更贱一点

  24. 广告歌783
    @4 years ago
    2104184

    # define TRUE FALSE
    TRUE是宏名,应该是“把真定义为假”。

  25. js200300953
    @4 years ago
    2104200

    瞬间想到这个:快速平方根倒数
    http://zh.wikipedia.org/zh/%E5%B9%B3%E6%96%B9%E6%A0%B9%E5%80%92%E6%95%B0%E9%80%9F%E7%AE%97%E6%B3%95

  26. 亿万潮湿
    @4 years ago
    2104222

    @Junius_Lou: “and have realized what a terrible mistake that was”这里的”mistake”似乎指的是“进行优化”这个决定,倒不一定是被进行优化的代码本身是一坨屎。也有可能是写得好,只是单纯太TM难懂了,妄图进行优化只是浪费时间而已。

    “Now, God only knows”这里的笑点应该不是“只有上帝知道”吧。上一句里面,God and I understood,重点在understood上面。到了God only knows这里,上帝只“知道”我在编程,但是不“明白”我在编个什么鬼玩意。换句话说,“写到这里,只剩我自己一个人看得懂我写的代码了”

    “it was hard to write // so it should be hard to read”这里应该是在说“代码这么难写,理应也难被读懂”吧。再加上第一句无情的“no comments for you”,根本就是在赤裸裸地挑衅:“老子写代码这么艰难,你甭想我给你写注释帮助你看懂,有脑子的自己慢慢费劲琢磨去”

    Junius_Lou莫见怪,没有冒犯的意思,只是讨论一下翻译而已,毕竟这是煎蛋的根本。我还是很喜欢看你翻的文章的,文风超赞哟

    [13] XX [6] 回复 [0]
  27. 西奥笑
    @4 years ago
    2104248

    @Junius_Lou: 从第一个注释可以看到,从39小时增长到42小时了,又坑了一大批啊

  28. Junius_Lou
    @4 years ago
    2104254

    @亿万潮湿:

    您的建议也是超赞哟,我得改改~

    thx

  29. snokye
    @4 years ago
    2104302

    #define TRUE FALSE

    //always return true
    public boolean somemethod() {
    return false;
    }

    神码!!!

  30. 一天突然
    @4 years ago
    2104308

    程序员伤不起啊 是直到发布,而是从发布时起

  31. 游客君
    @4 years ago
    2104376

    说好的注释呢,我怎么没看见

  32. 2104382

    @亿万潮湿: 按照原来的译法应该对应的是 only god knows把,之前就看错了= =|||

  33. FPS罗兹
    @4 years ago
    2104512

    #define TRUE FALSE
    我想起了那个悖论了……

  34. 2104680

    不爱写注释的伪程序员飘过 。。。

  35. 2104738

    Long John Silvers来源是《金银岛》的海盗吧

  36. 小寒
    @4 years ago
    2105104

    // I dedicate all this code, all my work, to my wife, Darlene, who will
    // have to support me and our three children and the dog once it gets
    // released into the public.

    这里support是双关,一般人都是dedicate给妻子感谢她的support/支持,而这里指的是在code发布之后,作者就穷到没法养家,而需要妻子来support/养他了。

  37. 大肚猴
    @4 years ago
    2105660

    程序员真不少哎 好在我一早就决定告别代码了

  38. 2107370

    我最常写的注释:“— 先凑合着用吧”

  39. passerby
    @4 years ago
    2109102

    @亿万潮湿:

    God only knows 就是“只有上帝知道”,你想多了。

    [11] XX [2] 回复 [0]
  40. kryuuri
    @4 years ago
    2109300

    @亿万潮湿: God only knows这个指正并不正确。这个原文的笑点就在于“God and I -> God only”的变化。如同上面的过客所说,您想多了。

发表评论


24H最赞