不出意外,Linus又开喷了,这次的激情开麦,源自一部分没有做注释的合并请求:Linux6.3内核收到了一部分合并请求,但这部分合并完全没有注释。

如果你懒得解释为什么存在一个合并,那这个合并从本质上来说就是错误的垃圾,这是每个开发者都应牢记于心的规则。我重复一遍:如果你不能解释清楚这个合并请求,那就不要做,就是这么简单。——Linus Torvalds

让Linus如此生气的代码注释,到底有啥用?

注释不仅展现了代码背后的逻辑,让我们在后期维护时能更容易阅读、理解代码,还能将授权许可、版权信息编写进去。此外,注释也有提示作用,如标记为FIXMETODO的注释往往表示待定的工作等等。

总之,代码注释告诉了我们为什么会写这样的代码。对Linus来说,收到的合并请求缺乏注释,因为没有合理的解释,代码不仅变得毫无意义,还会变得更难读、难维护。所以代码注释很重要,编写合理的代码注释更重要。
编写注释,快看这三不要!

1.不要花大力气编写注释,解释代码的每一个细节!

过多的注释会让源文件变得非常混乱,不仅会降低代码的可读性,还难以维护。(这种写大量注释的行为,也很难不让Linus发火。)

2.不要留不恰当的注释!

很多人会通过注释保存代码演变的历史记录,但这往往是无用功。一个热知识:版本控制系统可以保存历史记录。还有一些过时的、被废弃的、不正确的注释,一经发现就需要尽快更新或删除,不能再让这些废弃注释误导我们了!

3.不要犹豫!看到注释掉的代码,请直接删掉它!

对于那些不再使用的旧代码,大家可能下意识会直接注释掉,但直接干脆利落删除掉这些旧代码会更简洁。毕竟后期维护的时候,大家面对这些注释掉的代码只会敬而远之。

重构吧!

通过重构那些烂代码,可以摆脱不必要的注释:

  • 命名:比如将变量i重命名为numGoals,能明确意图。对于变量、方法以及类,我们都可以这样做;
  • 结构:如果某一段代码没有注释就无法理解,可以尝试更改代码结构;
  • 子表达式:将一个复杂的表达式拆分为多个子表达式,可以帮助大家更好地理解代码;
  • 断言:当我们遇到“当某个条件为真时,某段代码才能正常运行”的情况时,可以引入断言标明假设。

这样才能使注释更简洁、易看。

如何编写好的代码注释?

以下几个注释模式送给大家:

  • 文档注释模式:记录接口,而不是解释代码本身。
  • 脚注注释模式:主要用于描述为什么采用特定方法,短小精悍。通常在无法从代码中推断出此类信息的情况中使用。
  • 警告注释模式:警告开发人员注意某些特殊需求的注释,如:以超级管理员的身份调用函数。警告可能涉及安全或设计缺陷,注释可能包括TODOFIXME
  • 签名注释模式:注释中加上开发人员的首字母缩写。在团队中,我们可以更快速地找到相应人员讨论。
  • 编织代码模式:代码和文档结合在一起。需要首先编写文档,然后对该文档进行编码。

在Linus看来,写代码非常重要,写好的代码更重要。注释、命名、版式等代码规范检验的正是程序员最重要的基本功,如果基础不牢,必定地动山摇。

Linux之父:连你自己都懒得解释,那这就是一堆垃圾!相关推荐

  1. Linux之父:我们都老了,但Linux维护后继无人

    点击上方"码农突围",马上关注 这里是码农充电第一站,回复"666",获取一份专属大礼包 真爱,请设置"星标"或点个"在看&quo ...

  2. 刚2021年,Linux之父就“炮轰”了英特尔,称“他们都在偷工减料”!

    刚刚步入 2021,Linus Torvalds 就又开始了他的火辣言论.此次抨击对象又是英特尔,这次是哪里惹得大佬发长文痛斥呢? Linus Torvalds,想必大家并不陌生.不仅因为 Linux ...

  3. 你知道吗? Linux之父 Linus Torvalds 的10个有趣的事情

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 来自:Linux迷 链接:https://www.l ...

  4. Linux之父盟友分道扬镳 直言开源模式软肋

    Linux之父盟友分道扬镳 直言开源模式软肋 2005-09-06 12:53:00 标签:linux职场开源休闲 从1993年起,Larry McVoy就一直是Linux之父Linus Torval ...

  5. Linux 之父归来!

    参加2018 AI开发者大会,请点击↑↑↑ 作者 | 屠敏 来源 | CSDN 去修身养性的 Linux 之父 Linus Torvalds 在时隔一个余月后笑着归来,从曾临时接手 Linux 4.1 ...

  6. 挑战 Linux 之父认为的“不可能”:向 M1 Mac 移植 Linux

    整理 | 郑丽媛 头图 | CSDN下载自东方 IC 上个月苹果发布会推出的首款自研芯片 M1 ,不仅吸引了国内外评测技术网站对其性能的关注,更是在开发者的圈子内引起了轩然大波--换芯导致的生态迁移问 ...

  7. “自由主义教皇” 、​Linux 之父的封神之路

    作者 | 年素清 责编 | 王晓曼 出品 | 程序人生(ID:coder_life) "有些人生来就具有统率百万人的领袖风范:另一些人则是为写出颠覆世界的软件而生.唯一一个能同时做到这两者的 ...

  8. 家用计算机先驱逝世:Linux之父曾受他启发,马斯克悼念

    杨净 发自 凹非寺 量子位 报道 | 公众号 QbitAI 据外媒报道,家用计算机先驱Clive Sinclair去世,享年81岁. 他将家用电脑价格降至普通PC的五分之一,让80年代的年轻人拥有了人 ...

  9. linux服务器 32核,Intel换成AMD 32核锐龙 Linux之父体验很好

    Torvalds提到,Intel的至强他之前也考虑过,但计算价格后发现,成本太高了,核心数翻番往往需要花费5倍的价格,AMD就厚道许多,价格便宜了一半多. 去年5月,Linux之父Linus Torv ...

最新文章

  1. 利用CxImage实现编解码Gif图像代码举例
  2. 基于.net技术的代码高亮显示组件
  3. 史上最全 Java 多线程面试题及答案
  4. python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
  5. 使用级联功能实现蓝绿部署和金丝雀发布
  6. varchar保存带格式的数据_软件测试必备之数据库知识(一)
  7. 文本分类入门(七)相关概念总结
  8. Linux 命令之 chfn -- 修改用户信息
  9. SpringBoot2.x整合Redis 分布式集群_02
  10. 干货时间:聊聊DevOps下的技术系列之契约测试
  11. 从零基础入门Tensorflow2.0 ----八、39.2. gpu2
  12. Webstorm中文乱码的问题
  13. eclipse的下载、安装
  14. CCAI 2017 | 澳大利亚新南威尔士大学教授 Toby Walsh 将带来精彩演讲
  15. 等额本息还款和等额本金还款计算公式的推导
  16. 条码扫描器的安装方法与使用注意事项
  17. 形容计算机专业好句子,形容专业水平高的词句
  18. linux运行luminati,安装luminati的nodejs环境配置
  19. 埃斯顿机器人 王杰高_王杰高 埃斯顿机器人公司总经理--金手指奖•2018年中国国际机器人年度评选——风云人物奖申报-弗戈工业在线...
  20. 韩剧《天空之城》推荐

热门文章

  1. Elasticsearch - 分析器以及是否区分大小写 - 学习/实践
  2. table表格整体居中实现
  3. windows 10重装电脑后设置指纹提示已在其他账户上设置该指纹解决办法
  4. 1.JAVA中super关键字的使用
  5. “中兴捧月”杯 校园赛事嘉年华 | 程序设计大赛(初赛) | 数字化婚姻尝试配对
  6. linux ubuntu 安装光盘,LINUX系统(Ubuntu)光盘安装图解.doc
  7. Java:计算平均数
  8. 毕业生必须知道:干部身份、三方协议、派遣证【转】
  9. 便利店信息发布系统解决方案,堪称时间管理大师
  10. 1006: 求等差数列的和 ZZULIOJ