Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2033184
  • 博文数量: 369
  • 博客积分: 10093
  • 博客等级: 上将
  • 技术积分: 4271
  • 用 户 组: 普通用户
  • 注册时间: 2005-03-21 00:59
文章分类

全部博文(369)

文章存档

2013年(1)

2011年(2)

2010年(10)

2009年(16)

2008年(33)

2007年(146)

2006年(160)

2005年(1)

分类:

2007-01-24 23:59:27

80%的业务来自20%的顾客。
                               -- 美国质量管理大师约瑟夫·朱兰(Joseph Juran)

此法则不仅适用于经济领域,在软件设计中也同样奏效。

在《UNIX编程艺术》中ESR就提到过,一些开源项目的作者对软件的功能求全责备,力求做到面面俱到,毫无瑕疵,可最终很多项目在宏大的目标面前最终倒了下去,并再也没能站起来。这一方面说明事先有个项目原型,然后在此基础上进行渐进式地递归开发是必要的;另一方面,从用户的角度考虑,80%的用户只用到软件20%的功能,所以我们为什么不先开发出这20%的功能呢?

其实,这80和20之分也未必精确,他主要体现了一种概率的思想。回想一下让人头疼的垃圾邮件过滤系统,最终还不是基于统计的模型以其99.9%的精度占统治地位。在搜索领域也是如此,数据挖掘是不太可能获得100%的准确结果的,能达到较高的精确度也就能满足大多数用户的需求了,为了剩下的少部分用户而花费不成比例的投入往往是得不偿失的。这个规则在算法设计中也有体现,如在Linux内核中,网络包调度的“随机公平排队策略”(Stochastic Fairness Queueing discipline)就是用散列表的方法来保存数据包,这当然不能避免不同连接的包被放到相同的桶中而形成误差,但是因为这种情况发生的可能性很小,所以在实际的应用中就可以忽略不计。这个算法的效率不知道要比其他的如基于avl树的算法要简单和高效多少倍!

概率,我们有必要在某些时候想起他!
阅读(1678) | 评论(1) | 转发(0) |
0

上一篇:跟踪Linux内核发展

下一篇:购物

给主人留下些什么吧!~~