Linux之父:连你自己都懒得解释,那这就是一堆垃圾!
Posted 项目管理知识
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux之父:连你自己都懒得解释,那这就是一堆垃圾!相关的知识,希望对你有一定的参考价值。
如果你懒得解释为什么存在一个合并,那这个合并从本质上来说就是错误的垃圾,这是每个开发者都应牢记于心的规则。我重复一遍:如果你不能解释清楚这个合并请求,那就不要做,就是这么简单。——Linus Torvalds
让Linus如此生气的代码注释,到底有啥用?
注释不仅展现了代码背后的逻辑,让我们在后期维护时能更容易阅读、理解代码,还能将授权许可、版权信息编写进去。此外,注释也有提示作用,如标记为FIXME或TODO的注释往往表示待定的工作等等。
总之,代码注释告诉了我们为什么会写这样的代码。对Linus来说,收到的合并请求缺乏注释,因为没有合理的解释,代码不仅变得毫无意义,还会变得更难读、难维护。所以代码注释很重要,编写合理的代码注释更重要。
编写注释,快看这三不要!
1.不要花大力气编写注释,解释代码的每一个细节!
过多的注释会让源文件变得非常混乱,不仅会降低代码的可读性,还难以维护。(这种写大量注释的行为,也很难不让Linus发火。)2.不要留不恰当的注释!
很多人会通过注释保存代码演变的历史记录,但这往往是无用功。一个热知识:版本控制系统可以保存历史记录。还有一些过时的、被废弃的、不正确的注释,一经发现就需要尽快更新或删除,不能再让这些废弃注释误导我们了!3.不要犹豫!看到注释掉的代码,请直接删掉它!
对于那些不再使用的旧代码,大家可能下意识会直接注释掉,但直接干脆利落删除掉这些旧代码会更简洁。毕竟后期维护的时候,大家面对这些注释掉的代码只会敬而远之。
重构吧!
通过重构那些烂代码,可以摆脱不必要的注释:- 命名:比如将变量i重命名为numGoals,能明确意图。对于变量、方法以及类,我们都可以这样做;
- 结构:如果某一段代码没有注释就无法理解,可以尝试更改代码结构;
- 子表达式:将一个复杂的表达式拆分为多个子表达式,可以帮助大家更好地理解代码;
- 断言:当我们遇到“当某个条件为真时,某段代码才能正常运行”的情况时,可以引入断言标明假设。
这样才能使注释更简洁、易看。
如何编写好的代码注释?
以下几个注释模式送给大家:- 文档注释模式:记录接口,而不是解释代码本身。
- 脚注注释模式:主要用于描述为什么采用特定方法,短小精悍。通常在无法从代码中推断出此类信息的情况中使用。
- 警告注释模式:警告开发人员注意某些特殊需求的注释,如:以超级管理员的身份调用函数。警告可能涉及安全或设计缺陷,注释可能包括TODO或FIXME。
- 签名注释模式:注释中加上开发人员的首字母缩写。在团队中,我们可以更快速地找到相应人员讨论。
- 编织代码模式:代码和文档结合在一起。需要首先编写文档,然后对该文档进行编码。
Linux之父是个果粉:给自用M2 Mac装上Fedora Linux,除了图形加速和Chrome都搞定了...
萧箫 发自 凹非寺
量子位 | 公众号 QbitAI
要说苹果Macbook最忠实的大神用户,Linus Torvalds当属其一。
当支持M2芯片的几个Linux项目还在测试时,Linus就已经想办法给自己的M2 Macbook Air移植了Fedora Linux。
Linux Kernel 5.19正式版,就是他在自己的M2 Macbook Air上发布的。
今年的Linux Plumbers大会(LPC,Linux内核开发者峰会)上,Linus在接受ZDNet采访时,谈到了在M2 Mac上使用Linux的感受、Rust引入Linux的进度、以及一些工作上的事情:
我真不是一个工作狂。
但同时他也透露,自己“并不需要游戏”。
一起来看看他这次访谈透露的几点核心内容。
给M2 Mac移植Fedora Linux
Linux有好几个发行版(Fedora、Ubuntu、Asahi等),Linus通常用的是Fedora。
因此,他在M2 Macbook Air出来后,立刻就入手了一台,并成功向这台电脑上移植了Fedora Linux。
无论是编译内核、还是给内核打补丁,都可以正常工作,而且Macbook的16GB内存+256GB硬盘配置也还不错。
但值得一提的是,Linus并不推荐其他人这么做(高端玩家可以上手一试)。
不过,这个“Linus版”Fedora Linux系统也有一些限制。
一方面,它不能处理3D图形 (不支持M2 FPU图形加速), 无法使用屏幕调光等功能;另一方面,Chrome也还不能在Fedora Linux上运行。
对于不支持M2 FPU的问题,Linus的回应是“反正我也不需要游戏”。(手动狗头)
但不能用Chrome会有点麻烦,因为Linus习惯用Chrome保存密码,现在只能通过手机端Chrome同步。
不过整体来说问题不大,毕竟Chromium可以正常运行。
“我不是一个工作狂”
虽然给Linux内核做了不少贡献,但提及工作量,Linus表示自己并不是一个“工作狂”:
我之所以现在还在做它,是因为我随时可以抽身。但一段时间后我又会觉得无聊,所以回来继续工作。
事实上,相比参加这次的LPC 2022,Linus坦言自己更想潜水。就在会议召开前,他已经在博奈尔(Bonaire,西印度群岛中荷属安的列斯群岛的岛屿)潜了6天水。
对于“真正的工作狂”这一称号,Linus颁给了Greg Kroah-Hartman。Greg同样是Linux核心开发者之一,目前在Linux基金会工作,是Linux内核稳定分支(-stable)的维护者:
虽然很多任务可以自动化完成,但总归是无穷无尽的。他却每周都能完成。
△强者的发型
Linux内核啥时候引入Rust?
虽然早在几个月前,Linus就透露过会在Linux内核中引入Rust。
BUT,在8月发布的Linux 6.0第一个候选版本中,Rust for Linux的补丁却并没有被合并……
被问及合并时间时,Linus表示“不敢保证”,甚至在10月份的6.1版本也不一定出炉。
毕竟,为了确保能在Linux内核中工作,必须对Rust进行非官方扩展,例如Linux Rust NVMe驱动就需要70多项扩展。
Linus表示,最重要的是Rust编译器的稳定性,目前GCC Rust还不稳定,还需要使用Clang。
但对于合并Rust for Linux这件事,Linus在访谈中一再保证:
这一定会成功的。
参考链接:
[1]https://news.itsfoss.com/fedora-apple-torvalds/
[2]https://www.zdnet.com/article/linus-torvalds-talks-rust-on-linux-his-work-schedule-and-life-with-his-m2-macbook-air/
[3]https://www.zdnet.com/article/linux-6-0-arrives-with-performance-improvements-and-more-rust-coming/
[4]https://kernel.org/
以上是关于Linux之父:连你自己都懒得解释,那这就是一堆垃圾!的主要内容,如果未能解决你的问题,请参考以下文章
Linux之父是个果粉:给自用M2 Mac装上Fedora Linux,除了图形加速和Chrome都搞定了...