看板 CSSE 關於我們 聯絡資訊
差不多十一年前吧,我第一次聽聞 pattern 的概念,當時還叫 Pattern Language, 還正處於從建築學借來,應用成效不明的 階段,但我一看就覺得驚豔不已,急忙忙地到處找資料。 也恰巧我當時致力提倡科際整合,認為從管理、工程、建築、 設計、法律、社會等等不同學科,可學習到更深切理解世界的 方法,也能帶給程式設計更新的思維。模式語言的興起,正與 我的想法不謀而合,自然大力讚揚。 但結果就是被人說是莫名奇妙,淨講一些空話,記憶體模式比 程式設計模式重要得多... 到了 Design Patterns 被推出來,並逐漸成為市場上的主流 概念,已經隔了好些年了,在台灣大概已是九八年之後才開始 為人所知,後來更是出現一堆追捧者。 可是發展到這個地步,模式的概念已經變質了,也跟過往所有 流行過的概念一樣,全都走火入魔了。 真正的現實是,有太多人的思維都僵化了,他們需要很固定的 名詞,很固定的結構,甚至固定化的程式庫,才能寫出程式, 這也就是為什麼現在 j2ee 這麼紅的原因,而 STL 也成了寫 C++ 程式必用的東西。 然而軟體的抽象化、動態化是沒有止境的,抽象化到了終極, 則會進入哲學的層次,動態化到了極處,終會趨近自然之道。 所謂「道可道,非常道」,強求制式化來達到更高的抽象化與 動態化,根本就是一件矛盾的事情。上智與下愚都被同樣一個 框框給限制住了,無法成為一個適當的發展基礎。 軟體的複雜度並沒有什麼界限,只適用於一定程度的高複雜度 結構的設計方法和系統,自然只能在特定的環境中使用,也就 不是一個好的設計。但現在卻是愈來愈朝著這樣方向走... 當然這不代表這些努力都是錯誤的,真正錯誤的是僵化的思維 模式,自己的思維模式已經僵化了,還談什麼軟體模式呢? 一個成形的新概念,要推廣到實際應用中,最先要被建立的, 其實是一些基本的 doctrine, 也就是要採用這個概念,必須 遵守的關鍵原則,然後才能再由此逐漸發展。 然而,急功近利的商業應用需求,不斷地消費這些新思維,使 它們僅僅成為愈來愈龐大的標準的一部分,除了概念、標準和 產品,其他什麼也沒有,中間是空空洞洞的。 那麼,我們為了解決軟體問題、促進文明發展所建構的思想, 要怎麼在其中體現? 要怎麼讓眾多想要藉著軟體開發工作跨越 社會階級的急切參與者,在實作中了解其精義? 當人們把僅僅是模式字典的 Design Patterns, 當作是唯一的 經典時,在你翻開書之前,你已經誤讀了。 -- ※ 編輯: reader 來自: 61.222.173.26 (01/02 17:24)