误解之四:“模式需要有工具或方法学的支持才会有效”
在过去的五年中,我记录、使用并且帮助其他人使用模式,还至少帮助完成了一个基于模式的工具[BFV+96],所以我可以很有把握的说:模式的绝大多数好处都来自于原封不动的使用——也就是说,不需要任何形式的支持。
在谈到这个主题的时候,我通常会指出模式带来的四大好处:
1.它们记录了专家的经验,并且让非专家也能理解。
2.它们的名称构成了一份词汇表,帮助开发者更好的交流。
3.它们帮助人们更快的理解一个系统——只要这个系统是用模式的方式描述的。
4.它们使系统的重组变得更容易,不管原来的系统是否以模式的方式设计的。
过去,我一直认为第一项是模式最大的好处。现在我认识到,第二条起码也同样重要。请想一想,在一个开发项目的过程中,有多少字节的信息在开发者之间流动(包括口头的和电子的)?我猜就算没有1G也有好几兆。(在推出了《设计模式》之后,我已经收到了好几十兆给GoF的电子邮件。而且我们所描述的还都是小型到中型的软件开发项目。)由于有如此之大的信息交流量,所以效率上任何微小的提升都能大量节约时间。在这个意义上,模式拓宽了人们交流的带宽。我对第三、四条的评价也在逐渐提高,特别是在项目越来越大、软件生存周期越来越长的今天。
至少在短期内,模式主要存在于大脑中,而不存在于工具中。如果有了方法学或自动化工具的支持,应该还有其他的收益,但是我相信这些都只是蛋糕上的奶油,而不是蛋糕本身,甚至都不能算蛋糕的一层。
到目前为止,我说到的误解都是关于“模式是什么”的。现在来看看关于“模式可以做什么”的误解。这里有两种不同的风格:夸大其词的和心存疑虑的。
误解之五:“模式可以保证软件的复用性、更高的生产力、世界的和平……”
道理很简单,模式什么都不保证。它们甚至有可能无法给你带来利益。在创造新事物的过程中,模式无法取代人的位置。它们只是带来一种希望,有可能让一个缺乏经验的、甚至是未入门的,但是有能力、有创造性的人尽快获得设计的能力。
人们经常说:好的模式会让读者有“啊!”的回应。实际上,只有当模式恰好拨动了读者的某一根心弦时,他们才会有这样的反应。如果没有,模式就只象森林里普通的一棵树。因此,什么是好的模式?不管它写得有多好,如果不能引起读者的共鸣,它又怎能算是好的模式?
模式只是开发者的工具箱中的另一件工具,对模式寄以过高的期望只会适得其反。准备充分,然后做最坏的打算——这就是防止受骗、消除对抗最好的方法。
文章来源于领测软件测试网 https://www.ltesting.net/