李纳斯法则:只要有足够多的眼球,就可让所有 bug 浮现

发布于 2024-09-19 05:26:35 字数 1667 浏览 8 评论 0

开放源代码运动的主要领导者、最为大众所知道(并最具争议性)的黑客——埃里克·雷蒙(Eric Steven Raymond) 在他 1999 年出版的讨论软件工程方法的著名文集《大教堂和市集》中首次描述了这样一个精彩的观点:

只要足够多的眼球关注,就可让所有软件缺陷浮现。

更正式地来说即是:

只要有足够的测试员及共同开发者,所有软件缺陷都会在很短时间内被发现,而且能够很容易被解决。

他以开源操作系统 Linux 之父李纳斯·托瓦兹(Linus Torvalds)的名字来命名它,以此向李纳斯致敬:李纳斯法则(Linus’s_Law)。

把代码呈现给多个开发人员,让大家一起判断代码是否合格,这就是最简单的软件代码审查形式。各种研究和试验都反复的验证了代码审查(形式不限) 在发现软件 bug 和安全漏洞中的有效性,证明代码审查要比软件测试效果好的多。

在关于软件工程方法的《事实与谬论(Facts and Fallacies)》一书中,作者 Robert Glass 将这条定律描述为开源运动的”真经(mantra)”,但同时认为这条定律并不准确,因为缺乏足够的支持证据,并且有研究发现,遗漏的 bug 数并不跟审查的人数之间存在线性的变化。更准确的说,当审查人数在 2-4 个人之间时,效果最佳,增加更多的审查者对消除 bug 比例的影响不大。一些非开源的专业开发人员,他们虽然提倡在软件开发者执行严格的、独立的代码分析,但同时用有限的人手进行深度的代码审查——而不是强调”眼球“的数量。

以著名的 心脏出血(Heartbleed) bug 为例——非常重要的开源软件中的一个很肤浅的 bug——2 年多的时间里没有人能够发现,要知道,全世界上百万台服务器都在使用含有这个 bug 的 OpenSSL 软件。但雷蒙对于心脏出血(Heartbleed) 这个案例有不同意见,他认为虽然 OpenSSL 使用广泛,但事实上”没有任何的眼球“注意了它的源代码。

在 2001 年出版的《黑客伦理与信息时代的精神》(The Hacker Ethic And the Spirit of th Information Age) 里,李纳斯在其为此书做的序言中,自己定义了另外一个李纳斯定律”黑客行为的动机是什么?——李纳斯法则(Linus’s_Law)“:

人类所有的动机可分为递进的三种类型 — 生存(survival)、社会生活(social life)、娱乐(entertainment)。

“黑客”是已经超越利用计算机谋生存而进入后面两个阶段的人。计算机本身就是娱乐。黑客坚信没有比这更高的动力阶段。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

再见回来

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

qq_E2Iff7

文章 0 评论 0

Archangel

文章 0 评论 0

freedog

文章 0 评论 0

Hunk

文章 0 评论 0

18819270189

文章 0 评论 0

wenkai

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文