摘要:下面就为大家带来个人认为的常见的烂注释风格。

相信作为程序员的大家,只要写代码,就会自己写及看到别人写的代码注释。所以,我们往往会遇到“百花齐放,百家争鸣”般的注释。程序员最讨厌的10件事,0:写注释,1:别人不写注释。

作为一个老IT人,看了那么多年代码,也就看了那么多年注释。可以说,好代码不一定有好注释,但烂代码基本和烂注释共存。下面就为大家带来个人认为的常见的烂注释风格,希望能对大家在日后的工作中,带来一丝丝的帮助。排名不分先后:

1. 注释上带联系方式,TODO事项,问题单需求链接等。这种风格其实体现了工程师没有意识去利用好现代的平台技术,还停留在90年代的编码习惯。2020年了,git类软件已经是软件开发的首选代码托管平台了,问题单需求链接和联系方式的最佳位置应该是Git的提交日志上,TODO事项应该使用Git的issue管理。这种注释看到就应该删掉。例如以下两种注释

2. 注释上带有一部分设计内容。这些内容最大的问题是,没人知道它是真是假,更没人知道它是否完整,删掉了吧,又有点可惜,万一有点用呢?不删吧,又看着不舒服。出现这种问题的最大原因是,团队内没有太好的地方承载这类文档。2020年了,可以试试Github的pages平台。

3. 注释上写how,而不是why。这种大家都很清晰了,一致认为是不应该的。就不多说了,参考下面的例子

4. 对代码的使用说明,例如方法如何调用,各项参数的说明,会抛出什么异常。例如以下的例子便是。有空写这种注释,还不如把测试用例写好,通过用例来告诉用户应该如何使用。

5. 代码某种算法的特殊说明,这种比较有争议性,严格来说,不算是烂注释,但如果这种注释没有严格和代码一起管理(例如改了代码要同步改注释),那么这种注释就没有好过有了。所以这虽然严格来说是一个管理原因,但2020年了,我更推荐把这种注释写到提交日志上。怎么说呢?我以Git的这段提交来说明这个问题,这段提交只设计到一个变量的非null判断,很多人可能就直接提交了,有些人也会在代码上加上注释,阐述为什么要做这个非null判断,但作者最终是选择了在提交日志上阐述这段逻辑,而且足足写了20行(刨去一些个人签名,有效行数也很多),想象一下把这20行写到代码中,会对代码的阅读产生多大的影响呀?但不写,又会对后面的维护带来问题。

本文分享自华为云社区《我的注释我做主》,原文作者:周大仙人 。

点击关注,第一时间了解华为云新鲜技术~

这5个让人窒息的烂代码,你看完都忍不了!相关推荐

  1. 哈哈哈,这个教人写出烂代码的项目在 GitHub 上火了...

    如果说到什么是好代码,我们肯定都能说出一堆规则,例如使用一致的格式和缩进.使用清晰的变量名和方法名.在必要时提供文档与注释.不要过度精简代码等等. 但是对于什么是烂代码,你有比较清晰的认识吗? 在 G ...

  2. java特性多态,90%的人看完都说好

    01.第一份资料是图解网络 根据读者阅读偏好不同,共出了两个版本风格的 PDF,分别是亮白版本和暗黑版本. 02.第二份资料是计算机的相关知识 看完能让你对计算机有一个基础的了解和入门,是培养你 内核 ...

  3. 基于Python预测股价的那些人那些坑,请认真看完!

    编辑部: 前几天我们已经看过此文,@爱可可发过一次,今天AI科技大本营又翻译了此文.这篇文章真的很不错,不是在于模型的好坏,而是在于作者对预测股价的一些心得和体会,编辑部觉得大家应该好好的看一下这篇文 ...

  4. 真正聪明的人从来不自己做PPT,看完这篇就放假吧!

    你做PPT的时候是什么样的? 从完全空白的页面开始新建-- 从垃圾箱里翻不小心删除的素材-- 用已经用了三四遍的模板修修改改-- 搞定初稿就已经是凌晨三点 优化内容? 呵呵 人家的PPT高效还美 而你 ...

  5. c语言编程 BMI判断健康,BMI指数真的可以反映人的健康状态吗?看完你就懂了

    在现代社会,人们的健康意识越来越强,而如何来评判个人的健康状态是一个热点话题!其中BMI(身体质量指数)是其中比较常用的指标,因为该方法简便--只需要把你的体重(单位为千克)除以身高(单位为米)的平方 ...

  6. mysql倒序分页,90%的人看完都说好

    JAVA基础 JAVA异常分类及处理 异常分类 异常的处理方式 Throw和throws的区别 JAVA反射 动态语言 反射机制概念 (运行状态中知道类所有的属性和方法) Java反射API 反射使用 ...

  7. 面试100人后的经验总结,看完这篇让你至少涨薪2000

    相信大家可能都看完了上篇文章了,也可能拿到了很多面试通知,接下来就是重中之重,面试!在楼主职场中也陆续面了大概100人左右,由此楼主总结了几点需要大家注意 温情提示:所有事项都不包括技术大牛,管理大牛 ...

  8. 你尝过被人误会的委屈吗?看完本篇…

    人之特性--理解 关于理解,最重要是"愿意去理解". 比如像我写文章这么长,愿意去看,愿意去理解的人,还是不多的.一段文字,人们是否愿意去看,喜欢去看,是需要"口感&qu ...

  9. java九九乘法表的编程原理,90%的人看完都说好

    一.字节跳动技术一面(算法) Java 的 16 进制与字符串的相互转换函数 JAVA 时间格式化处理 将毫秒转化为日期 文本的倒序输出 判断一个数字是奇数还是偶数 用Hibernate 实现分页 3 ...

最新文章

  1. Windows事件等待学习笔记(一)—— 临界区自旋锁
  2. python课本第三章答案idle_第三天任务 (【基于Python编程从入门到实践】第三章 列表 书本及动手试一试)...
  3. 一次服务器磁盘空间不足导致的一系列问题
  4. Android 高仿QQ5.2双向側滑菜单DrawerLayout实现源代码
  5. java Socket 编程实例
  6. 最流行的三大数据建模工具
  7. yarn的安装和使用(全网最详细)
  8. UID_PR_01_基础操作
  9. 一个自动写咪蒙体的机器人,请夸我
  10. 视频剪辑计算机配置要求,对于视频剪辑工作,需要什么样的电脑配置才满足要求...
  11. 数据库 - 交集、并集和补集
  12. MybatisPlus学习〖三〗crud接口实现
  13. 计算机中汉字的顺序用什么牌,中国汉字的写做顺序,你知道吗?
  14. PTA---换硬币 (20 分)
  15. 发散级数(中文维基百科)
  16. 权威解读医学影像AI路线图:AI未来会在很大程度上取代医生读片
  17. 近视200度能学计算机吗,近视200度严重吗
  18. Arduino系列-Wemos D1 WIFI UNO R3开发版的智能家居
  19. java 连接chatgpt
  20. 程序员如何正确的提问?

热门文章

  1. 设计模式 里氏替换原则
  2. Bootstrap3 按钮状态提示
  3. es6 async函数的实现原理
  4. 视觉SLAM笔记(36) 3D-2D: PnP
  5. mysql 更改一行_mysql怎么修改数据表里一行数据?
  6. roobo机器人怎么唱歌_日本推出机器人“妻子”,拥有3大功能,能替代真人伴侣吗?...
  7. 路由器网络性能测试软件,路由器性能测试
  8. 华为智慧屏华为正式发布鸿蒙,舒适大屏体验,华为智慧屏SE让智慧生活一步到位...
  9. win10 安装docker流程_Windows10下安装Docker的步骤图文教程
  10. A smooth collaborative recommender system 推荐系统-浅显了解