作者reader (读者)
看板CSSE
标题[心得] 走火入魔的 design patterns
时间Sun Jan 2 15:46:23 2005
差不多十一年前吧,我第一次听闻 pattern 的概念,当时还叫
Pattern Language, 还正处於从建筑学借来,应用成效不明的
阶段,但我一看就觉得惊艳不已,急忙忙地到处找资料。
也恰巧我当时致力提倡科际整合,认为从管理、工程、建筑、
设计、法律、社会等等不同学科,可学习到更深切理解世界的
方法,也能带给程式设计更新的思维。模式语言的兴起,正与
我的想法不谋而合,自然大力赞扬。
但结果就是被人说是莫名奇妙,净讲一些空话,记忆体模式比
程式设计模式重要得多...
到了 Design Patterns 被推出来,并逐渐成为市场上的主流
概念,已经隔了好些年了,在台湾大概已是九八年之後才开始
为人所知,後来更是出现一堆追捧者。
可是发展到这个地步,模式的概念已经变质了,也跟过往所有
流行过的概念一样,全都走火入魔了。
真正的现实是,有太多人的思维都僵化了,他们需要很固定的
名词,很固定的结构,甚至固定化的程式库,才能写出程式,
这也就是为什麽现在 j2ee 这麽红的原因,而 STL 也成了写
C++ 程式必用的东西。
然而软体的抽象化、动态化是没有止境的,抽象化到了终极,
则会进入哲学的层次,动态化到了极处,终会趋近自然之道。
所谓「道可道,非常道」,强求制式化来达到更高的抽象化与
动态化,根本就是一件矛盾的事情。上智与下愚都被同样一个
框框给限制住了,无法成为一个适当的发展基础。
软体的复杂度并没有什麽界限,只适用於一定程度的高复杂度
结构的设计方法和系统,自然只能在特定的环境中使用,也就
不是一个好的设计。但现在却是愈来愈朝着这样方向走...
当然这不代表这些努力都是错误的,真正错误的是僵化的思维
模式,自己的思维模式已经僵化了,还谈什麽软体模式呢?
一个成形的新概念,要推广到实际应用中,最先要被建立的,
其实是一些基本的 doctrine, 也就是要采用这个概念,必须
遵守的关键原则,然後才能再由此逐渐发展。
然而,急功近利的商业应用需求,不断地消费这些新思维,使
它们仅仅成为愈来愈庞大的标准的一部分,除了概念、标准和
产品,其他什麽也没有,中间是空空洞洞的。
那麽,我们为了解决软体问题、促进文明发展所建构的思想,
要怎麽在其中体现? 要怎麽让众多想要藉着软体开发工作跨越
社会阶级的急切参与者,在实作中了解其精义?
当人们把仅仅是模式字典的 Design Patterns, 当作是唯一的
经典时,在你翻开书之前,你已经误读了。
--
※ 编辑: reader 来自: 61.222.173.26 (01/02 17:24)