• 请注释你那该死的代码
    时间:2012-12-03   作者:外刊IT评论网   出处:aqee.net

    我站出来就是为了要说一句:请注释你那该死的代码。

    每次我遇到一个程序员——有时是相当高水的——总发现他会认为:你并不需要给你的代码加注释。我要说,这就是胡说八道。我很长时间以来一直这么表达。问题是,让事情改变要比你想象的难。虽然我们正处在努力编写那些讨厌的代码、准备发布一些会令人惊叹的新东西的紧要关头,我们仍然几乎注释所有的东西。没有任何借口不去做这些事情。每隔3到7行代码,你就能看到有长篇的社论发表。有时,几百行代码里,你就能找到一个很好的笑话。

    错误的藏身之处

    看,一个是你想要的,一个是你实现的。你的bug就在这两者之间。如果写了注释,你就是在告诉我你想要的。而你的代码中告诉我你是如何去做的。程序的缺陷要么存在于你想要的想法中,要么,需求是对的,而你的代码有问题。请帮助我,让我知道究竟是哪个错了。

    不要偷懒


    一个常见的反对声音是:我听说,注释经常会过期,因为代码会经常更新,而注释不会。你不更新注释吗?你的同事也不?不要偷懒,不要养成一个让人认为偷点儿懒无所谓的文化氛围。告诉同事你是如何一丝不苟的注释程序的,让他们知道你也希望他们这样去做。说不注释是因为怕某人或某些地方在将来会造成你的错误,这只是在找借口。

    你是有经验的人

    人本无知,这很自然,但你是有经验的人。因此,你有义务教育那些需要学习的人。你的注释会指导那些正在阅读你的代码的人。告诉他们为什么在这里要用Tuple数据结构,而不是用其它的(更好的做法是附加一个stack overflow或dotnetperls上的链接 … 你完全可以做到这些,不是吗?)你在这走了一个什么捷径?如果不走捷径你就不能按时发布,所以,告诉这些新手你遇到的特殊情况。否则的话,最终你的不好的代码将会被四处拷贝,四处散播。看!你写的烂代码变成了公司的程序模板!完全没有注释!

    你会打字


    我的招聘过程有一部分是白板编程,一部分是键盘编程。所有好的程序员都是打字高手。就说你每分钟能打出40-60词。那请你告诉我,为什么在你机枪扫射似的编写代码时不加上注释呢?当然,你可以花30秒时间告诉我,代码写的这样一团糟是因为搞业务的那个家伙需要程序在本周发布而换回不菲的7.5万美元。可是下个月呢?这些代码不要了?封存到石头里了?我知道这些代码是在干什么。但请告诉我你的意图。

    你在一天天变老

    听我说,我编程已经很久了,也许早在你上中学之前。我仍然在编程,我仍然喜欢编程。有朝一日,你也会变的跟我一样老。如果你到了像我一样(那时我已经没有能力再教育你),那时,有太多的层,有太多的抽象,有太多的技术架构,你无法完全记住。你的注释就能出来指导你。它们会告诉你,6个月前,你是用这种方法、这种模式实现的,而且这样做只是为了炫耀。如果你是一个真正优秀——并且仍然在做编程的程序员——你会认识到,这些代码写的很烂,你现在需要以不同的方式重新实现它。而你仍然有你的注释来让你回忆起当时的想法和为什么这样做。

    所以,请注释你那该死的代码。

    网友留言/评论

    我要留言/评论

    相关文章

    一个典型软件项目的故事:ACME公司的Widgets系统出了点问题。这个系统被他们用来管理器材的库存,当初设计时没考虑到如今这样大量的数据的增长。他们的员工因为这个问题备受折磨。很显然,需要想办法解决这个问题,让系统恢复正常。
    投资创业关键三步:池塘、模式及核心竞争力:摩根士丹利亚洲董事总经理季卫东口述,互联网行业在中国还将是增长最快的行业。但在任何细分领域都竞争激烈的情况下,如何找到相对较好创业方向?选对池塘、关注商业模式、保持核心竞争力。崔西整理。
    为何你的免费用户不回来了?:用户留存率是免费模式的基础,客户生命周期价值包括用户花在游戏上的时间和用户花在游戏上的钱,但用户不花时间又哪来的钱呢?特别是开发迭代的时候,留存率很难保持,保持住了就是开发者的动力,带来的愉悦是二元的:要么证明你的游戏有趣要么无趣,以便开发者能很快做出反应,那怎样才能懂得用户的心情呢?为什么你的免费用户不回来呢?
    掌握六个要点,公司再也不怕骨干跳槽:一个顶尖人才对于一家公司来说是如鱼得水,但如果这个人才突然离职了怎么办?大多公司通常都陷入了商业困境,只有极少数的公司能安然无恙继续运作。
    亲身创业教训谈:做中老年移动互联网产品前,得想明白的三件大事:听闻白鸦要做老人手机,我狠欣慰又有更多的创业者关注老人领域了。我们车内逃脱团队的上一个项目就是为中老年人服务的家庭SNS社区,虽然后来失败得一踏涂地,但我非常愿意把自己的伤疤揭开,跟大家分享当时我们的经验教训。
    我没有时间 - 懒惰的借口:你是否有过想干点儿什么的想法?去开发一个项目?想实现一个目标?
    码农创业,6年80万,有梦想才可能有机会:一直在关注园子的信息,技术方面,职业发展,技术创业各方面的文章,期间关注过一些关于创业讨论的话题。今天闲来,说说我这6年的亲身体会(在此就不发网址了,不想有打广告嫌疑)。
    精益创业公司开发伟大产品的7种方法:精益创业(Lean Startup)是硅谷流行的一种创业方法论。它的核心思想是,先在市场中投入一个极简的原型产品,然后通过不断的学习和有价值的用户反馈,对产品进行快速迭代优化,以期适应市场。本文作者布拉登·科维茨(Braden Kowitz)是谷歌风投设计工作室负责人。
    真正优秀的程序员有哪些与众不同之处?:“当你50岁时,还愿意编程吗?”这个话题在Hacker News上众说纷纭,不过我们能够看到,那些真正成功的程序员,如John Carmack、Peter Norvig、Jeff Dean,即使他们不再年轻,但依然对编程充满热情,他们身上有哪些与众不同之处,又有哪些值得我们学习?有人进行了总结。
    互联网厚黑江湖九宗罪:M君说:中国互联网里50%的管理人员都“烂”过了。95%的公司都“烂”过了。