作者reader (读者)
看板CSSE
标题Re: [问题] 反design pattern的见解
时间Fri Feb 9 12:35:19 2007
※ 引述《ellinas (keep your faith !)》之铭言:
: 版主之前有发表过关於pattern的文章 但似乎是持反对立场
: 不知道我们应该对pattern持什麽样的态度呢?
这个嘛... 我都不太记得自己说过什麽了。
既然被点名,简单讲一点粗糙的批评意见好了,现在没办法讲得细致。
pattern 的概念是一种高度的抽象化方法,不是很适合过度简化为特定的操作
方法,在多数软体组织的生产模式仍然类同於农业化或工业化前期的状况下,
经常被强硬推广和过度简化,这可能是 design pattern 本身的问题,不尽然
可完全归结於误用,毕竟书上连程式码都有了。
而既然是高阶的抽象化方法,就不适合主要应用在程式的细微之处,而应该以
架构性操作为主,但在方法总被过度商业化、口号化、流行化的现在,design
pattern 已经成为特定的软体术语或较为抽象化的 API, 这已偏离从建筑学中
引入 Pattern Language 时的原始概念了。
或者,我可以用一句话来概述:道可道,非常道。
design patterns 没有什麽错,但它被定型之後,事情就不对了。原po提及的
问题,显然就是它被定型化所造成的流蔽。
问题是,它之所以会流行,正是因为它可以被定型化、可以变成商业产品,就
像後来的 Refactoring 也是这样。
在 1994 年 Design Patterns 一书出版之前,我对於 pattern 的概念是高度
赞扬的,我应该是台湾第一个在媒体上讲到 pattern 的人吧,在此书出版後,
我也曾多次推崇此书,当时国内都还买不到书呢,也算是有一些推广之功。
到了後来,却觉得它已经完全走样,特别是当此书被捧为圣经一般,还号称为
GoF...
就我的概念,好的软体开发方法,它的价值必然是在哲学上,因为软体开发可
视为人的思想具现化的过程,哪来这麽多框框条条的,当它变成一些框框条条
甚至工具之时,方法论已经被降阶到方法之下,剩下训练 (discipline) 了。
训练很重要,其重要性绝不下於程式语言,而且仍然不够被重视,请千万不要
误解我的意思,只是,那不是我所追寻的程式之道。
至於就学习使用而言,我想,多学多思考,不要太被特定知识理论限制住了,
应该是非常基础的学习方法了,许多 design patterns 的问题,应该主要是
出在过於僵化的运用上,而且这些年来也有许多的补强方法在延伸发展。
--
如果大家真的对软体开发方法那麽有兴趣,那为什麽每年的 Jolt Award 几乎
没人理会呢?
Jolt Award 全名为 Software Development Jolt Product Excellence Awards
分成几个不同类别,其中最受重视的是书籍类别的奖项,等於软体开发书籍的
最高荣誉了。虽然得奖作品後来受重视的程度不一,只是就相对而言, Design
Patterns 已是十二年前的得奖作品 (1994 年生产力奖得主) ,不妨重视一下
新东西吧。
2006 年是 Prefactoring, 有兴趣就去看看吧,其实几乎每年都有新东西的。
华人地区向来流行的东西落後美国十年,在资讯发达的现在,实在没有道理。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.125.136.160
1F:推 PsMonkey:本篇心得:要多多点名版主 [逃] 02/09 14:13