作者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)