前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统设计得应该没问题吧——墨菲定律

系统设计得应该没问题吧——墨菲定律

作者头像
普通程序员
发布2019-10-23 14:12:06
5310
发布2019-10-23 14:12:06
举报
文章被收录于专栏:普通程序员普通程序员

“系统设计得应该没问题吧”,当你内心在这么问自己的时候,那么这个系统肯定存在非常多的问题!

Anything that can go wrong will go wrong!

一、什么是墨菲定律

墨菲是美国爱德华兹空军基地的上尉工程师。1949年,他和他的上司斯塔普少校,在一次火箭减速超重试验中(human tolerance for g-forces during rapid deceleration),因仪器失灵发生了事故。墨菲发现,测量仪表被一个技术人员装反了。由此,他得出的教训是:如果做某项工作有多种方法,而其中有一种方法将导致事故,那么一定有人会按这种方法去做。

一句本无恶意的玩笑话最初并没有什么太深的含义,只是说出了坏运气带给人的无奈。或许是这世界不走运的人太多,或许是人们总会犯这样那样错误的缘故,这句话被迅速扩散,最后竟然演绎成:如果坏事情有可能发生,不管这种可能性有多小,它总会发生,并引起最大可能的损失。

二、理论依据

在数理统计中,有一条重要的统计规律:假设某意外事件在一次实验(活动)中发生的概率为p(p>0),则在n次实验(活动)中至少有一次发生的概率为pn=1-(1-p)n。由此可见,无论概率p多么小(即小概率事件),当n越来越大时,pn越来越接近1。

这一结论被爱德华·墨菲应用于安全管理,他指出:做任何一件事情,如果客观上存在着一种错误的做法,或者存在着发生某种事故的可能性,不管发生的可能性有多小,当重复去做这件事时,事故总会在某一时刻发生。也就是说,只要发生事故的可能性存在,不管可能性多么小,这个事故迟早会发生的。

三、具体定律

墨菲定律(Murphy's Law)主要内容有四个方面

1、任何事都没有表面看起来那么简单

设计系统时,多问问自己是不是考虑全面了,多请教这方面的资深人士。如果有可能,借鉴已有被验证的成熟方案。在继承的基础上创新风险相对小一些。

2、所有的事都会比你预计的时间长

很多项目是倒排时间的,前紧后松会让项目出问题的概率降低。一定要不断向团队强调时间意识,经验不够丰富的成员估计的时间肯定不够!我在按周迭代的项目中,会尽可能要求成员只用一半的时间做开发,后边留给测试和上线的工作。最重要的是让所有成员一开始就充分工作起来。只要大方向没错,先执行起来!

3、会出错的事总会出错

我经常给组内同学说,一定要搞定一件事。

有些同学把明面上那点工作完成后就等着了,等着别人集成,等着来联调,等着QA测试。这样不太好,你可以多写点单测,让自己负责模块更健壮;了解你这块在整个系统中的定位,跟前后左右的系统的关系,甚至推着相关方向前跑。

系统不少问题都出现在模块间的调用上。做好你这块,同时保证跟前后左右的系统间的依赖都OK才算搞定一件事。

4、如果你担心某种情况发生,那么它就更有可能发生

文章开头那句话,“系统设计得应该没问题吧”。如果你做的东西,自己心里都没底,那大概率是有问题的。

“墨菲定律”的根本内容是“凡是可能出错的事有很大几率会出错”,指的是任何一个事件,只要具有大于零的机率,就不能够假设它不会发生。

四、扩展

墨菲定律应用于不同行业或领域,衍生出了不少有意思的“定律”,可以在http://www.murphys-laws.com/进行查看,网站首页如下图

看的大多是程序员,Murphy’s love laws送给大家

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 普通程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档