25k star,程序员,那些你不经意间可能践行的定律,或者是忽略的

简介: 【8月更文挑战第16天】

1 简介

当人们谈论开发时,会聊到许多定律。这个仓库收录了一些最常见的定律。或许是你遇到过的,或许是你忽略的。

❗: 这个仓库包含对一些定律、原则以及模式的解释,但不提倡其中任何一个。 它们的应用始终存在着争论,并且很大程度上取决于你正在做什么。

2 阅读

github国内用户可以访问如下地址

https://github.com/nusr/hacker-laws-zh

如果要访问原文的话,可以访问如下地址:

https://github.com/dwmkerr/hacker-laws

github如果无法访问的话,可以后台直接私信

3 其中一些定律:

  1. 90-9-1 法则

90-9-1 法则表明,在诸如知乎这样的互联网社区中,90% 的用户只看内容并不参与互动,9% 的用户会参与讨论,而只有 1% 的用户会创造内容。

现实世界的例子:

2014 年,对四个健康的数字社交网络进行的一项研究发现,排名前 1% 的人创造了 73% 的帖子,紧随其后的 9% 平均占 25%,其余的 90% 的人平均占 2%。

  1. 阿姆达尔定律

阿姆达尔定律显示了计算任务通过增加系统资源可以获得的加速潜力。该公式通常用于并行计算中。它可以预测增加处理器数量的实际收益,该收益受到程序可并行比例的限制。

举例说明:如果程序由 A、B 两个部分组成,A 部分必须由单个处理器执行,B 部分可以并行运行。那么向执行程序的系统添加多个处理器只能获得有限的好处。它可以极大地提升 B 部分的运行速度,但 A 部分的运行速度将保持不变。

image.png

  1. 布鲁克斯法则

软件开发后期,添加人力只会使项目开发得更慢。

这个定律表明,在许多情况下,试图通过增加人力来加速已延期项目的交付,将会使项目交付得更晚。布鲁克斯也明白,这是一种过度简化。

但一般的论据是,新资源的时间增加和通信开销,会在短期内使开发速度减慢。而且,许多任务是密不可分的,换句话说,这样可以使更多的资源之间能轻易分配,这也意味着潜在的速度增长也更低。

  1. 坎宁汉姆定律

在网络上想得到正确答案的最好方法不是提问题,而是发布一个错误的答案。

据史蒂芬·麦克基迪说,沃德·坎宁汉姆早在 20 世纪 80 年代早期的时候建议他,在互联网上获得正确答案的最好方法不是提问题,而是发布一个错误的答案。麦克基迪称这为坎宁汉姆定律,而坎宁汉姆不以为然,并觉得这是“错误的引用”。最初这条定律只是用于描述 Usenet 上的社交行为,但后来也渐渐用于其他的在线社区(如 Wikipedia、Reddit、Twitter、Facebook 等)。

注:如需转载,须保留文首公众号名片,其它行为一律视为非授权转载。

相关文章
|
3月前
|
固态存储 测试技术 iOS开发
硬盘检测工具哪个最好用?这8款值得收藏
硬盘健康状况直接影响电脑性能,选择合适的检测工具至关重要。本文推荐8款实用硬盘检测工具:Windows CHKDSK、DiskGenius免费版、Victoria、HDDScan、SeaTools、AIDA64、HD Tune Pro及Mac磁盘工具。这些工具功能全面,操作简单,涵盖S.M.A.R.T信息查看、坏道检测与修复、性能测试等,满足不同用户需求。无论是Windows还是macOS用户,均可找到适合的工具维护硬盘健康。
|
6月前
|
测试技术 持续交付 开发者
Logic Error: 如何识别和修复逻辑错误
识别和修复逻辑错误是软件开发中的重要技能。通过理解程序需求、使用调试工具、打印日志和编写单元测试,可以有效地识别逻辑错误。修复逻辑错误时,需仔细阅读代码,回溯错误来源,并进行全面的重新测试。遵循最佳实践,如保持代码简洁、进行代码审查和使用持续集成,可以进一步减少逻辑错误的发生,提高代码质量。希望本文能帮助开发者更好地识别和修复逻辑错误,编写出高质量的软件。
464 16
|
7月前
|
数据安全/隐私保护 Docker Windows
DeepSeek-R1+对话页面本地部署保姆级教程
DeepSeek-R1+对话页面本地部署保姆级教程
953 14
|
11月前
|
编解码 Linux iOS开发
openEuler系统下neofetch工具的安装与基本使用
【10月更文挑战第2天】openEuler系统下neofetch工具的安装与基本使用
254 1
openEuler系统下neofetch工具的安装与基本使用
|
供应链 安全 IDE
重磅发布|OpenSCA SaaS全新上线
OpenSCA SaaS全新上线!
212 0
|
API Android开发 iOS开发
安卓与iOS开发中的线程管理对比
【9月更文挑战第12天】在移动应用的世界中,安卓和iOS平台各自拥有庞大的用户群体。开发者们在这两个平台上构建应用时,线程管理是他们必须面对的关键挑战之一。本文将深入探讨两大平台在线程管理方面的异同,通过直观的代码示例,揭示它们各自的设计理念和实现方式,帮助读者更好地理解如何在安卓与iOS开发中高效地处理多线程任务。
|
存储 NoSQL 关系型数据库
RocksDB 事务实现和应用场景
RocksDB 事务实现和应用场景
|
关系型数据库 MySQL 数据库
Django与MySQL:配置数据库的详细步骤
Django与MySQL:配置数据库的详细步骤
|
存储 关系型数据库 MySQL
MySQL索引的限制
【6月更文挑战第15天】MySQL索引的限制
560 3
|
机器学习/深度学习 人工智能 自然语言处理
AIGC技术革新:智能创造如何重塑艺术与设计行业
AIGC技术,人工智能生成内容,正引领艺术与设计行业的变革。借助深度学习和自然语言处理等技术,AIGC能自动生成文本、图像等内容,丰富创作手段并提供创新机会。在艺术领域,它模拟各种风格作品,助力高效创作;在设计领域,它根据用户需求生成设计方案,提升个性化选择。AIGC打破了传统界限,提高了创作效率,并满足了用户的个性化需求。未来,随着技术进步和应用场景拓展,AIGC将在虚拟现实等领域的结合中,为艺术与设计带来更沉浸式、交互式的体验,重塑行业未来。【6月更文挑战第4天】
1247 1