每个程序员都该知道的5个定律

1.墨菲定律

"墨菲定律"是一种心理学效应,是由爱德华·墨菲(EdwardA.Murphy)提出的。最简单的表达形式是越怕出事,越会出事。(Anythingthatcangowrongwillgowrong。)”这条定律来源于墨菲在50年代初对火箭测试失败的回应。这条定律给我们的启示是永远在系统关键地方使用防御性设计,因为系统某些地方总会出错!

当你在机器上运行软件时,任何地方都有可能发生问题——从硬盘上的系统到数据中心的电力供应。所以你必须确保你设计的架构在每个层级都可以应对故障。

2.吉尔德定律

20世纪70年代的时候,被称为数字时代的思想家的乔治·吉尔德预言,在未来25年里面,主干网的带宽每六个月增长一倍,其增长速度是摩尔定律预测的cpu增长速度三倍,而且未来上网一定会免费。虽然目前的接入互联网并不是免费的,但是从20世纪90年代末期以来,以K计算的网络速度到发展到今天以M计算、以G计算的速度。表明了吉尔德的这项预言大致是正确的。

3.梅特卡夫原则

梅特卡夫原则是指网络价值以用户数量的平方的速度增长。网络价值等于网络节点数的平方,即V=n的平方(V表示网络的总价值,n表示用户数)网络外部性是梅特卡夫原则的本质。

这个法则告诉我们:如果一个网络中有n个人,那么网络对于每个人的价值与网络中其他人的数量成正比,这样网络对于所有人的总价值与n×(n-1)=n2-n成正比。如果一个网络对网络中每个人价值是1元,那么规模为10倍的网络的总价值等于元;规模为倍的网络的总价值就等于00元。网络规模增长10倍,其价值就增长倍。

4.Conway定律

“系统设计的架构受限于生产设计,反映出公司组织的沟通架构”。在60年代,一位名叫MelvinConway的工程师注意到公司组织结构影响到他们开发的系统的设计。他用一篇论文描述了这个观点,并命名为“Conway定律”。

这条定律很适用于软件开发领域,甚至体现到代码层面上。交付软件组件的各个团队组织结构直接影响到组件的设计。如今,将大的集成应用解耦成微服务已成趋势。这很棒,因为这可以加速交付使用项目。但你也应该牢记Conway定律,在公司组织构建中投入与技术开发同样多的工作。

5.North定律

“每一个决定都是一次权衡”。

在开发者日复一日的生活中,我们每天都做无数个大大小小的决定。从命名变量到自动化任务,再到定义平台架构。这条语录强调无论你做的选择是什么,你总会放弃一个或多个选项,但这不是最重要的,最重要的是理智地做出决定,了解其他选项,清楚你为什么不选择它们。你要始终根据当前你掌握的信息来权衡并做出决定。

超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架

好了,本文到此结束。如果对编程、计算机、程序员方面感兴趣的话,欢迎私信联系我,随时交流!点个


转载请注明:http://www.aierlanlan.com/rzfs/3774.html