说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

避免代码注释的五大理由

HTML文档下载 WORD文档下载 PDF文档下载
代码注释的作用一直以来都被程序员们广泛讨论。很多人认为注释不是必要的,写注释那是因为代码可读性太差了。原文作者Paulo Ortins发表了博文《避免代码注释的五大理由》,一起来看下。

代码注释的作用一直以来都被程序员们广泛讨论。很多人认为注释不是必要的,写注释那是因为代码可读性太差了。原文作者Paulo Ortins发表了博文《5 reasons to avoid code comments》,以下为译文:


通常,我们阅读软件比编写软件花费的时间要更多。虽然我从未见过任何科学研究能够证明这一点,但是在软件领域,它就好比一个教条或者信念如此的根深蒂固。正因为编写软件要比阅读软件要容易,因此代码的可读性而显得尤为重要。程序员可以通过一些技术来实现它,其中一点就包括代码注释。

关于代码注释的文章,网络上有很多讨论。我们应该使用注释来解释代码吗?还是应该注重编写表达式代码而无需阅读注释?Joe Kunk曾发表过一篇文章《To Comment or Not to Comment》其中有段内容是说所谓的好代码是指我们应该避免注释,因为注释通常是用来解释/隐藏恶意代码。

下面就来讨论下避免写代码注释的五大理由:

1. 程序员更加倾向于鼓励”坏“代码。

有一种说法,有代码注释的就是好代码,因此,程序员经常在代码边上写注释,使其看起来更加出色。如果我们把代码注释当做一种信号,那么也许我们正在编写坏代码。每当我们写注释时应该思考如何使代码看清来更加洁净。

2. 花费更多时间来编写和维护

如果注释没有跟随代码的变化而变化,即使是正确的注释也没有用。注释通常作为代码的第二个版本。当为某个函数写注释时我们需要不断的重复自己,这就违反了DRY(Don’t Repeat Yourself) 原则。花费时间来增加复杂性,软件需求改变了,代码也随之跟着变化。如果我们写注释,这就意味着必须去维护注释。因此,除非是很必须要,否则我们应该拒绝在注释上花费双倍时间,相反我们可以利用这些时间来提高代码的质量或开发新的特性。

3. 注释不是测试/验证

修改代码可以依赖工具,比如使用编译器、IDEs及单元测试;而注释却不能。注释没有这些工具,你无法依赖工具或者单元测试在正确的地方或者过期后来确保它们的正确性。一旦你写了注释,没有测试模块来验证它的正确性,一旦这个注释失败了,那么它就永远的失败了。

4. 注释没有代码文档可靠

通常,注释过期后,它们往往与代码失去了连接性。程序员阅读这些注释或许被“欺骗”了。即使不断的更新了代码注释,唯一了解的是这个代码应该是什么以及它的可读性。举个例子,如果老本问我们如果项目发生了更改,我们从哪能看出?是代码还是注释?——答案当然是代码。

5. 代码注释风格填补了屏幕空间

采用标准化的注释尤为重要,某些注释标准(如同下面)使用了很多行,这就要求你尽可能多的阅读更多代码。

/*** * @param title The title of the CD* @param author The author of the CD* @param tracks The number of tracks on the CD* @param durationInMinutes The duration of the CD in minutes*/public void addCD(String title, String author, int tracks, int durationInMinutes) {CD cd = new CD();cd.title = title;cd.author = author;cd.tracks = tracks;cd.duration = duration;cdList.add(cd);}

PS:本文所说的“避免代码注释",并不是说就不写代码注释,而是尽量避免去写代码注释,假如你认为值得也可以这么做。

此前,我们还发表过《五种应该避免的代码注释》以及《10个最“优秀”的代码注释》,不妨移步去看下。

原文出自:Pauloortins

微软Surface Pro正式登陆中国市场 售价6588元起 岳雷:Windows Server 2012虚拟化性能提升巨大 陈健:Windows Server 2012让企业轻松管理IT 智能手机:革命已经波及到阴间 兄贵草泥马:重口味单机移动游戏为什么能火? 最炫HTML5框架Famo.us 将免费面向开发者 MySQL到NoSQL:数据的重思和查询方式的转换 程序员心髓:移动应用API设计10大技巧 Netflix公布个性化和推荐系统架构,3种类型作业通实时 从SendCloud到搜狐云 扎克伯格的败笔?Facebook Home可能无家可归 走进eico design,仰视设计师 乔布斯顾问承认苹果的命名糟透了 罗永浩:一百万年薪!招聘软件研发总监 开源的:helios移动应用后端服务框架 IE11将支持WebGL 或将OpenGL映射到DirectX 基于云端的3D渲染和协作平台Lagoa:仅需一个浏览器 大数据提速,IBM 推面向Hadoop的PureData大数据机 游戏开发者的盛宴:2013 CocoaChina春季开发者大会强势启动 开放还是关闭API?CIO做决策前应考虑的六个建议 Python 2.7.4发布,更快的IO模块 如何拒绝沦为服务的商品,并收回对数据的绝对掌控 最阴险的代码?尽在“邪恶”的Underhanded C Facebook Home出阴招:Social皮,Android心 国内最火的五款HTML5前端开发框架 TIOBE 2013年4月编程语言排行榜:Objective-C四年来排名首次下滑 MeeGo复活!Sailfish OS智能手机 SDK发布 10亿美金!传闻谷歌要收购WhatsApp 从打造国内最大的OpenStack公有云开始 展望HBase的未来 你的数据库安全吗?CryptDB数据库软件可查询加密的SQL数据库 设置访问表命令:“access-list 2 permit 10.0.0.0 0.0.0.255”中10.0.0.0 和 0.0.0.255分别指什么? 请问谁知道这是什么缘故啊? 如何计算cpu和memory的一般的使用上限 在delphi中使用什么报表控件打印的报表效果较好 谁知道db或dbf头文件的格式? 急急 NMFtp中我想从ftp服务器下载指定文件扩展名的文件,该怎么办? 初始化页面的时候,如何使TextMode="Password"的asp:textbox有默认值显示? IBM软件清库存(大优惠) 又是可恶的乱码问题 struts与数据库!在线等待! 如何开发asp.net程序(基于vb) vc++的链接错误 如何用程序动态的获得activex控件的方法属性事件信息 请教:使用web.xml做资源约束时如何由自己的程序来做用户验证 请问:怎样编程来来虚拟网卡? 急!创建LOOKUP的问题 如何计算cpu和memory的一般的使用上限 新问题请教! 老问题:从Excel文件里把数据导入导数据库中 有汇编玩的非常牛的人吗??? 字符串操作的简单问题 学习J2EE需要装什么软件? >>有关记录的问题??<< 请高手指教:出现“ORA12663:服务器未提供客户机要求的服务”问题,怎么解决? 大侠救我! 动态sql问题请教,谢谢 填充combobox的问题 windowsxp不能创建拨号连接 怎樣轉換時間格式 ACCESS问题 Linux下上网问题?在线等待!急!急!急! 终极讨论:从Excel文件里面导入数据 winsock的问题 关于WINDOWS下邮件程序编写问题 Solaris下的Makefile问题 在lan里面的两台主机之间怎么配ppp连接,没有modem 我的SQL数据库安装的是实例,好象有问题哦! 高分求票据、合同套打代码! 事务问题,请大家帮忙,在线等待,50分相送!!!! xml解析的问题? 关于CRuntimeClass,请指教。 100分求解(在线等待) 终极讨论:从Excel文件里面导入数据 CString怎样转换为char * 类型? 有关爱情与事业的讨论! replace(replace(replace(replace(str,"<","&lt;"),">","&gt;"),chr(13),"<br>")," ","&nbsp;")是什么意思? 非常简单的问题!!! 看看这个portal做的怎么样? 如何去掉word中的页码 兄弟们,帮忙推荐一本powerDesigner的中文书籍,电子书籍也可以,在线等待!thanks! 动态sql问题请教,谢谢 人寒冷的感觉是怎样造成的? doing是什么意思 久别重逢怎么造句 怎样才能给人一种冰冷的感觉 已知a,b为非零向量,函数f(x)=(xa+b)(a-xb),则使f(x)的图像为关于y轴对称的抛物线的一个必要不充分条件是A.a⊥bB.a平行bC.|a|=|b|D.a=b 南美白对虾、罗氏沼虾与中国对虾生活习性的对比 英语翻译Poligono Industrial Baix Ebre H STREET PLOT 79/80 形容一个人出门便要打扮漂亮,而家中乱得如垃圾堆一般的词语 英语翻译a telecommuting work force can help business-owners substantially curtail the overhead costs,such as the costs of rent and utilities English is widely used _____ travellers and business people all over the world.A.to B.as C.by D.for 请翻译, 如图,四边形ABCD中,AD平行BC,点E在CD的延长线上,连接DE,交AB于点F,连接DB,∠AFD=∠DBE,且DE方=BE乘CE,(1)求证:∠DBE=∠CDE,(2)当BD平分∠ABC时,求证:四边形ABCD是菱形. 爱因斯坦的最大失误怎么样 养怡之福可得永年的永年是什么意思? 英语翻译llacer ramirez lerardo laguia numero 49 alzira 46600西班牙巴伦西亚的一个地址。请注明那个是街道什么的 最好能翻译成中文的地址 仲永从幼年的天资过人却落得个“泯然众人”的结局,这个故事给了你哪些启发呢?请你从不同角度思考.(1)从仲永的经历来看(2)从仲永父亲的行为对仲永的影响来看 若偶函数f(x)的定义域为【-1,1】,且在【0,1】上单调递减,若f(1-m) 英语翻译CALLE MARIA DE GUZMANNUM 58 Piso BJ 28003 MADRID 罗氏沼虾名字的由来 中华苏维埃第一次全国代表大会和全国第一次代表大会有什么不同?中国苏维埃第一次全国代表大会与全国第一次代表大会有什么不同(就是1921年的那一次)? 英语翻译街道:Avda,fuenlaburad65 地区:leganes Madrid Espana 韶山冲的读音“韶山冲”的“韶”怎么读?急用! 阴菜是什么菜 喜阴的农作物有哪些? 毛泽东的老家湖南省湘潭市韶山冲,“冲”是指什么?是行政单位吗? 两会中的人民代表大会和每五年一次的全国代表大会的区别是什么?如果本年度召开了全国代表大会,还要召开两会中的全国代表大会么? 在北方什么农作物喜阴 “韶山冲”中“冲”的意思是 几何除了欧式几何还有哪些几何大类? 什么作物喜阴 韶山冲为什么那么出名?韶山冲的“冲”是什么意思?湖南省湘潭市下辖的韶山市,有一个地方叫韶山冲,在全中国都很出名.一个小地方为什么那么有名气呢?韶山冲的“冲”是什么意思? 养怡之福的之,盈缩之期的之我知道这两个之词性一样,但不知是什么词性, 兵的故事;”但此刻,他肯定是最感寒冷的一个人“?这句话和故事的结局有什么关系? 韶山冲的冲是什么意思 Vien的意思Vien这个英语名字翻译过来叫什么.. 有什么喜阴的作物啊?我想种在我家的大树下! 我就是L音不准,怎么发音, Vien什么意思 为什么说“但此刻,他肯定是最感寒冷的的一个人”?这句话和故事的结尾有什么关系?《兵的故事》天黑了.暴风雪呼啸得更加(愤怒 狂怒).一辆客车已经被暴风雪困在公路上六七个小时.车上 人有悲欢离合,月有阴晴阳缺,此事古难全,但愿人长久,千里共蝉娟, sinh 《兵的故事》中为什么说"但此刻,他肯定是最感寒冷的一个人”?这句话和故事的结局有什么关系?” 但愿人长久,千里共蝉娟. 定义与性质的不同急以三角形为题 为什么说但此刻,他肯定是最感到寒冷的一个人?这句话和故事的结局有什么关系天黑了.暴风雪呼啸得更加(愤怒 狂怒).一辆客车已经被暴风雪困在公路上六七个小时.车上二十几名乘客中,有 但愿人长久,千里共蝉娟. 英文名Vien感觉怎么样?是什么含义? 中华人民共和国第十一届全国人民代表大会第二次会议是什么时候开的 但愿人长久,千里共蝉娟.的意思? 性质和定义的区别 第十一届全国人民代表大会第四次全体会议什么时候召开? 祈祷的音怎么读 “性质”和“意义”有什么区别 第十一届全国人民代表大会什么时候开始,什么时候结束? 但愿人长久,千里共蝉娟!这句话的正确解释是什么? 喜阴的菜有哪些 方仲永从神童到“泯然众人”,这种变化的根本原因是用原文回答 “L”的发音不准怎么办 理一理,连句成段.只写序号【】这个八边形的''藻井,还是古代的木质扬声器呢【】最典型的戏台 绍兴柯桥区塘乡的宾舍戏台距今已有400多年的历史.【】藻井壁间画着八仙过海的故事.【】在 方仲永由神通到泯然众人矣的三个原因是什么 发音不准(了.来)的音说不好怎么办?那位亲知道发音不准怎么治疗.了来说不好 上医院看了有的说要割舌系带有的说割了没用 .不知道怎么办了唉 韩美启动第六轮防卫费分担会谈 意见分俄罗斯一科技园项目涉嫌违法 或致数百女子坚持每天喝3升水 4周后外貌似年日本海上自卫队一军官因非法使用兴奋剂乌克兰加入欧盟协定签署期或推迟到20美国艺术家创造“糖果肖像”庆祝万圣节消息人士称叙化武生产设备销毁工作如期法国将实施冬季禁逐令 拖欠房租者也可以色列军方在约旦河西岸射杀一巴勒斯坦法国一名抢劫犯曾为iPod及8欧元抢韩媒:中国学生“弃日择韩” 赴韩留学伊朗或取消向巴基斯坦供应天然气巨额合委内瑞拉总统称查韦斯音容出现在委地铁美国最新隐身驱逐舰下水 明年秋季开始巴西里约热内卢社会游民多 5000余德专家:欧元区最大问题在于违反不援助中央第二巡视组巡视新华社工作动员会召中国前三季度召回汽车97次 涉及车辆美最严苛移民法诉讼终结 阿州支付35德专家:欧元区最大问题在于违反了不援日韩举行第七次海上联合搜救演习(图)赴日研修生:“三七开”的人生抓机遇、补短板、强担当推进社会事业再和他人分享食物分享爱在杭州,也有这样他献血143次,相当全身的血液换了1以后浙江人买房过户办证最多跑一次马云又创新词“网商精神”要穿越地球做金华地税实现“掌上办税”爹妈两次放弃,医院一再坚持两岁溺水男杭金衢转绕城南线匝道临时改道去黄山、正在热映新手妈妈一着急患上产后抑郁2017蔡淳佳“我是我” 世界巡回演邮储银行金华市分行开展金融宣传活动久雨乍晴家长轧堆“晒宝宝”享春光打假8年,“假课文”何以屹立不倒把你的麻烦告诉我们 社区报记者为你奔奥迪汽车销售政策被指价格歧视龙游农信联社获评“衢州市消费者信得过养生、度假、宜居三大楼盘任你淘新玩法40万辆共享单车涌入寸土寸金的城市中
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘