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

这篇具有很好参考价值的文章主要介绍了Linux之父:连你自己都懒得解释,那这就是一堆垃圾!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

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

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

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

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

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

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

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

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

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

重构吧!

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

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

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

如何编写好的代码注释?

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

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

在Linus看来,写代码非常重要,写好的代码更重要。注释、命名、版式等代码规范检验的正是程序员最重要的基本功,如果基础不牢,必定地动山摇。文章来源地址https://www.toymoban.com/news/detail-406327.html

到了这里,关于Linux之父:连你自己都懒得解释,那这就是一堆垃圾!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自己动手写数据库系统:实现一个小型SQL解释器(中)

    我们接上节内容继续完成SQL解释器的代码解析工作。下面我们实现对update语句的解析,其语法如下: UpdateCmd - INSERT | DELETE | MODIFY | CREATE Create - CreateTable | CreateView | CreateIndex Insert - INSERT INTO ID LEFT_PARAS FieldList RIGHT_PARAS VALUES LEFT_PARS ConstList RIGHT_PARAS FieldList - Field ( COMMA FieldList)?

    2024年02月12日
    浏览(39)
  • 【设计模式】以国足的例子来解释代理模式,希望自己不要被退钱

    通过引入一个新的对象来实现对真实对象的操作或者将新的对象作为真是对象的一个替身,这种机制被称为代理模式。通过引入代理对象来间接访问一个对象,这就是代理模式的模式动机。 代理模式 :给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模

    2024年02月21日
    浏览(24)
  • 自己动手做数据库系统:解释执行 update 和 delete 对应的 sql 语句

    在上一节我们完成了 select 语句的解释执行,本节我们看看 Update 和 Delete 对应的语句如何解释执行,当然他们的实现原理跟我们前面实现的 select 语句执行大同小异。无论是 update还是 delete 都是对数据表的修改,因此他们的实现方法基本相同。 假设我们要执行如下 sql 语句:

    2024年01月22日
    浏览(39)
  • 懒得改变原始对象?JavaScript代理模式教你怎样一步步偷懒!

    系列首发gong zhong hao[『非同质前端札记』] ,若不想错过更多精彩内容,请“星标”一下,敬请关注gong zhong hao最新消息。 何为代理模式 例如,你想预约一家公司的董事长会面,按照正常流程,你只能通过先联系他的秘书,然后跟他的秘书预约时间,约好时间后你们两个才能

    2024年02月15日
    浏览(28)
  • npm i 报一堆版本问题

    1,先npm cache clean --force 再下载 插件后缀加上 --legacy-peer-deps 2, npm ERR! code CERT_HAS_EXPIRED npm ERR! errno CERT_HAS_EXPIRED npm ERR! request to https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz failed, reason: certificate has expired npm ERR! A complete log of this run can be found in: npm ERR!     C:Users24963AppD

    2024年01月24日
    浏览(17)
  • C语言快捷键+一堆宝藏技巧,全网最全~

    🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如需转载还请通知⚠️ 📝个人主页:Aileen_0v0🧸—CSDN博客 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏:Aileen_0v0🧸

    2024年02月08日
    浏览(32)
  • 【Linux】误删除/home家目录怎么办? -- 此时ssh连接登录的就是此普通用户

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年03月21日
    浏览(40)
  • npm install时报一堆错(大致错误范围在sass)

    在服务器上部署一个 react 写的网站(windows开发,linux部署)的时候, npm install 会报很多错: 如果你遇见这个问题,我总结了一些解决方案(并行方案,不是步骤): 重新编译node-sass二进制文件: npm rebuild node-sass 卸载node-sass: npm uninstall node-sass ,安装sass: npm install sass 。(

    2023年04月22日
    浏览(25)
  • 现在的程序员真是越来越懒了,api 文档都懒得写!程序员:“api工具惯的”

    为了让大家更能清楚了解 Api 相关往期内容,我写了一个阅读指引: 序号 学习路径指引 链接 1 Api -- 连接世界的 Super Star Api -- 连接世界的Super Star_不吃西红柿丶的博客-CSDN博客 2 软件吞噬世界,Api 快速入门到放弃 软件吞噬世界,Api快速入门到放弃_不吃西红柿丶的博客-CSDN博客

    2024年02月20日
    浏览(29)
  • vue3 如何实现 表格内容无缝滚动,我又写了一堆冗余代码

    近期在开发可视化大屏项目,除去各种 echarts 图表和地图展示之外还有多个表格。现在来了一个需求,需要将大屏中的所有表格设置为内容无缝滚动。 本着程序员的七宗罪原则第一时间推脱了一下,但没推脱成功。 简单的在网上查了下适合我们项目的有两种方案,第一种是

    2024年02月09日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包