l

2010年6月10日 星期四

從 The Timeless Way of Building 學設計 (4)

6/10 21:47~22:22

最近幾天 Teddy 真的是忙到靠北...邊走,但是為了窄小的鄉民們(說文解字,Teddy 篇:窄小,廣大的反義詞。不是說鄉民們又窄又小,是指收看 Teddy 部落格的人數很稀少),Teddy 還是拼著睡不著也要寫這一篇,這也是 The Timeless Way of Building 的核心精神。各位觀眾,掌聲歡迎:『The Quality Without A Name (QWAN)』。

翻開課本第二章

There is a central quality which is the root criterion of life and sprint in a man, a town, a building, or a wilderness. This quality is objective and precise, but it cannot be named.


這一張照片是 Teddy 在 2007 年到法國 旅遊 參加研討會,途經日內瓦,在列馬湖畔所拍攝的。要如何幫這張照片命名,才可以表達出列馬湖的『quality』呢?說『寬廣』,列馬湖是滿大的,但是又沒有大到那種非......常.........大...的大。說『漂亮』,是很漂亮,可是又沒有那種美到極致的感覺。說『高』,嗯,列馬湖的噴水柱是很高,可是又沒有 101 來的高。說『平靜』,列馬湖是會讓人整個心情放鬆,可是湖邊人來人往,又不是真的那麼『平靜』。

路人乙:(路人甲出場太多次了,今天換人)啊....哇哩勒,Teddy 你是來亂的嗎?吃這個也癢,吃那個也癢。 說這樣也不行,說那樣又不對。你到底是想怎樣?

Teddy:你說對了,quality without a name 就是說這樣也不行,說那樣又不對。也可以說『說這樣也行,說那樣也行』因為列馬湖同時都具有上述特質(quality)的某些部份,但是又沒有任何一個特質可以完全表達它。就是說『言語無法形容,只能用心體會』。如果鄉民們去過列馬湖(沒去過也沒關係,在腦袋中想像一下你曾經去過最美的地方,可能是太魯閣,龜山島,新山夢湖,etc)你就能感受到那種特質。這個特質的本身十分精確,但是卻無法用言語完整形容(無法命名)。但是,一旦你去到另外一個地方,如果這個地方也具有與列馬湖(或是你心目中所想像的那個地方)相同的特質,你卻能夠立刻辨識出來。下面的內容應該就容易了解了。

It is never twice the same, because it always takes its shape from the particular place in which it occurs.

The fact that this quality cannot be named does not mean that is is vague or imprecise. It is impossible to name because it is unerringly precise. Words fail to capture it because it is much more precise than any word. The quality itself is sharp, exact, with no looseness in it whatsoever. But each word you choose to capture it has fuzzy edges and extensions which blur the central meaning of the quality.

再舉個例子,以『whole (完整)』這個字來看,完整是什麼意思?

路人乙:完整就是完整啊,這有什麼好講的。

Teddy:一整顆蘋果被咬一口,算不算完整。

路人乙:廢話,當然不算。

Teddy:可是人家 Apple 的蘋果就是被咬一口啊,它卻是很『完整』的傳達了『人人看了 Apple 的產品都想咬一口的意念』。所以,這樣算不算『完整』。讀一下下面這句。

Imagine the quality without a name as a point, and each of the words which we have tried as an ellipse. Each elipse includes this point. But each ellipse also covers many other meanings, which are distant from this point.

***

講到這邊,那這一堆有的沒的和軟體設計有何關係。這.....快想一個說法.....。當一個建築物,城鎮,都市,具有 QWAN,那生活在裡面的人就是很自然,幸福,舒服,有活力,有朝氣,頭好壯壯,長命百歲...。問題來了,既然這個建築物,城鎮,都市具有 QWAN,那就是說『言語無法形容,只能用心體會』,那怎麼可以重複蓋出(建造出)具有 QWAN 的其他建築呢?總要有一個辦法吧!這就是本書作者 Alexander 在後續章節所要提出方法,就是用 pattern languages 來表達。

這...還是沒講到和軟體設計有何關係。...ㄟ, 鄉民們,如果有機會看到別人的軟體設計(軟體架構,一堆沒三小路用的 UML diagrams,或 source code 等等),不知道是否曾經有那種『ㄟ,這個設計怎麼那麼好』或是『靠,這程式是誰寫的』這種感覺,可是有時候又說不清楚到底好在那裡,差在哪裡?如果鄉民們學過了很多 patterns (不局限於 design patterns,也可以是 architecture patterns, coding patterns,exception handling patterns,etc)那麼,就可能『嘗試』(學過一堆 patterns 也不一定代表馬上就有能力把 patterns 串成 pattern languages,這兩者還是有所不同)從 pattern languages 的角度來解讀這個軟體設計。具有 QWAN 的軟體設計,不管它是哪個領域的軟體,用什麼語言開發的,你會覺得這個設計好棒,容易修改,擴充,測試,維護等等。沒有這種特質的,ㄟ...覺的好像住在『鐵皮屋』,『頂樓加蓋』,或是『違章建築』裡面,總是覺的『鳥鳥的』。

***

友藏內心獨白:QWAN,我真是搞不懂你啊。

1 則留言:

  1. 「鳥鳥的」這個說法真是於我心有戚戚焉阿....哈哈哈哈哈...

    回覆刪除