隔了这么长时间,再重新捡起Alex的书来看,感觉有点脱节了:P
Alex说:各种模式是相互关联的,形成了模式语言。–这个好像前两篇都有提到:)
但是当使用了模式语言构造出建筑以后,就形成了一个各部分相互依存的“系统”。软件亦是如此。
正如前面所说,模式有好坏之分,如果这个系统中存在着坏的模式(我前面说过,模式的好坏是相对的,不是绝对的,一个好的模式,如果用的不是地方,同样会变成一个坏模式)。对于建筑来说,我们可以说,这个系统存在着应力(印象中这个术语好像是来自“结构力学”,用于说明材料内部用于平衡外力的内力)。对于软件来说,我们就会说:这个软件有Bad smell。
正如当材料中的应力超过一定程度后,会对材料造成破坏。软件中的Bad smell同样有这样的效果。如果说有什么不同的话,应力造成的破坏不一定都是坏的,它也可能使系统达到另外一个平衡,并最终消除应力。但软件中的Bad smell好像没有这样的效果。
这个时候,我们需要“重构”。–看来这是一段通往“软件的永恒之道”了^_^
然而要注意到:一个系统中的各个部分都是相互依赖而又相互影响的。在这样的系统中,存在着“牵一发而动全身”的情况。其表现可以用“蝴蝶效应”来形容。
1979年12月,洛伦兹在华盛顿的美国科学促进会的一次讲演中提出:一只蝴蝶在巴西扇动翅膀,有可能会在美国的德克萨斯引起一场龙卷风。他的演讲和结论给人们留下了极其深刻的印象。从此以后,所谓“蝴蝶效应”之说就不胫而走,名声远扬了。
以上就是关于“蝴蝶效应”的简单说明(注:其中的洛伦兹是混沌动力学家、气象学家L.A.洛伦兹,不是那个爱因斯坦时代的物理学家H.A.洛伦兹[1853-1928])。BTW:最近还有一部以此为题的电影,还不错,顺便推荐一下。^_^
为了防止“蝴蝶效应”的不良影响,所以我们还需要:“小步迭代”和“配置管理”。–这也可以说是通向“软件的永恒之道”的重要一段。