本文共 945 字,大约阅读时间需要 3 分钟。
兽评:在复杂性和简单性之间存在着这样一种辨证关系,有时候为了提供简单性的接口,我们需要采用异常复杂的技术。对复杂性的控制与管理是软件开发的一个重要的特征,控制复杂性的扩散是一种必备需要。西蒙有一个很好的比喻:从前有两个钟表匠,名叫坦帕斯和霍拉,他们能制作出精美的手表--每个手表都有大约1000个零 部件。坦帕斯在制作手表的时候,如果放下手中的活--譬如去接电话--手表马上会散架,必须重新从头组装那些零部件。顾客越来越喜欢他做的手表。给他打电 话的次数越多,对他来说找到充足的,不间断时间完成一个手表就越难。 霍拉制作的手表不比坦帕斯制作的手表复杂程度低,但是他事先做好设计,这样他就能够将十几个零件构成组件,然后组合这些位置固定的组件。因 此,当霍拉放下手中正在组装的手表去接电话的时候,他只错过一小部分的工作,他可以仅用坦帕斯所用工时的一部分就完成手表的组装--如果这两个手表匠在安 装零件时每10次有一次被打断,那么平均来说坦帕斯完成一只手表所需的时间是霍拉的4000倍。
本文转自xiaotie博客园博客,原文链接http://www.cnblogs.com/xiaotie/archive/2006/05/18/402990.html如需转载请自行联系原作者
xiaotie 集异璧实验室(GEBLAB)