[心得] 走火入魔的 design patterns

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