看板 CSSE 關於我們 聯絡資訊
※ 引述《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
PsMonkey:本篇心得:要多多點名版主 [逃] 02/09 14:13