Posted on 2005-11-14 16:59
canonical 閱讀(666)
評論(2) 編輯 收藏 所屬分類:
設(shè)計理論
最近幾年關(guān)于模型的提法突然多了起來,但這個概念到底意味著什么呢。從哲學(xué)上說,我們的思想是外部世界結(jié)構(gòu)在主觀意識中的反映,當我們把主觀意識再投射回
外部世界時,就得到關(guān)于外部世界的模型。所以,在最廣泛的意義上,模型不過是我們思維中的一組關(guān)聯(lián)。問題不在于我們是否需要模型或者什么東西是模型而什么
東西不是模型,我們所意識到的一切都是模型,無論它與真實情況的差距有多大。我們所能區(qū)分的只是什么是一個"好"的模型,什么是一個"壞"的模型。在面向
對象建模中,經(jīng)常聽到人說XX是對象,YY不是對象。這是一種錯誤的提法。所有的東西都是對象,都是我們心智中可以操縱的符號。一張紙是對象,當它被撕成
了碎片,每個碎片也是對象。因為受力方式等隨機因素的干擾,信紙碎裂的方式也是隨機的,
最終造成的碎片也是隨機的。我們可以說信紙L這個對象由碎片A,B,C這三個子對象構(gòu)成,也可以說L由碎片D,E,F構(gòu)成。定義對象的方式實在是無窮無
盡。
我們通過比較來認知外部世界。當我們面對一個不熟悉的概念的時候,我們總是在把它分解,重構(gòu)為我們已經(jīng)熟悉的概念以后才能真正的理解它。也許,我們只能理
解那些我們已經(jīng)知道的東西!我們已在這個星球上生存了億萬年,以至于我們總可以將那些"新"的結(jié)構(gòu)與我們的"先驗知識"做比較。只有當面對量子論和相對論
的時候,一個人才能真正意識到自己的知識是多么的貧乏,一種先天的貧乏。Cantor將比較的技術(shù)發(fā)揮到了極致,他通過比較區(qū)分了可數(shù)無窮大與不可數(shù)無窮
大,結(jié)果他瘋了。
假設(shè)現(xiàn)實有一個結(jié)構(gòu)S, 我們的模型具有結(jié)構(gòu)M。
當S(通過一定的簡化和拓撲變換)能夠與M匹配時,我們就說現(xiàn)實S被理解了。 更一般的, 我們從不同的角度或者在不同的層面上看待同一個事物,
從而形成模型M1, M2, M3,... 我們可以通過一條邏輯途徑M1-->M2-->M3-->S來理解S.
最好的模型應(yīng)該構(gòu)成到現(xiàn)實結(jié)構(gòu)S的最短路徑。一個鮮活的例子就是數(shù)據(jù)庫。在von
Neumann體系架構(gòu)下,計算機能夠直接回答的問題是:存放在0x***地址的值是多少(M1)。而在現(xiàn)實中,我們經(jīng)常需要回答的問題是:
值大于**的紀錄有那些(M2)。這些問題是關(guān)于變量的值的,而不是變量的地址。數(shù)據(jù)庫的價值正在于通過索引提供了M1->M2的映射。早期的層次
數(shù)據(jù)庫僅僅提供了一個中間模型H, H->M2的映射還需要程序員來完成,最終難免被淘汰的命運。一個模型就這樣創(chuàng)造了一個產(chǎn)業(yè)。
模型映射的最短路徑意味著我們最好不要去創(chuàng)建那些"聰明"的新結(jié)構(gòu).在一個良好設(shè)計的系統(tǒng)中,我們不應(yīng)該費力去"發(fā)現(xiàn)"什么或去認知什么。設(shè)計不等于創(chuàng)
造,一個最好的設(shè)計應(yīng)該是抄襲成功的范例,最好是連改動也沒有,可惜現(xiàn)實的多變總要你多少作些改變。如果需要改變,最好是局部化的改變,在數(shù)學(xué)上我們稱之
為同態(tài)。如果在映射的時候,無法做到局域化,那往往意味著出現(xiàn)了一些本質(zhì)的困難。例如html語言中的table元素。表格本質(zhì)上是二維布局,而html
文本是一維的文本流,它們之間存在著深刻的差異。當某個表格單元的rowspan或者colspan屬性需要修改時,對應(yīng)于界面表現(xiàn)只是一個局部調(diào)整,而
反映到html代碼中卻是全局的修正。xml決不是萬能的。
某個事物被清楚的理解了,是因為我們對它已經(jīng)有了一個完整的模型M,所以對已知的事物建模是相當容易的,因為我們可以從模型M出發(fā),建立一個同態(tài)甚或是同
構(gòu)的模型即可。所有的困難都在于如何對那些我們所知甚少抑或是一無所知的東西建模。按照Laplace的哲學(xué),如果我們不知道什么是最好的選擇,那么所有
的選擇都是等價的。在用迭代法解方程的時候,通常的做法是拋一個隨機的初始解進去,只要控制策略得當,最終會收斂到正確的解上。一切并不在于選擇初始解的
啟發(fā)式策略有多么的"聰明",
隨機性才是創(chuàng)造性的根源,因為只有幾率才能打破因果的枷鎖。一個好的初始解一般只是縮短收斂的過程,但并不影響最終收斂的結(jié)局。
一個模型首先提供的是一個術(shù)語體系或者說一個詞匯表,一種語言。使得我們能夠以一種一致的方式捕獲那些轉(zhuǎn)瞬即逝的思想。模型本身是否正確其實并不一定如想
象中的那么重要。一旦初始的模型建立,我們的認知就有了一個不斷發(fā)展和積累的基礎(chǔ),最終就可能得到超越我們最初期望的結(jié)果。交流和表達具有根本的意義,優(yōu)
劣與否只在其次。設(shè)計模式提出的時候引起轟動,到今天,當一切塵埃落定,它最大的貢獻也許只是貢獻了一批術(shù)語和模式名稱,讓大家可以在模式的框架下討論問
題。恰如陳省身的纖維叢理論。也許這個世界上最成功的建模案例是宗教。通過一次提問,誰干的,就把所有未知的問題一攬子解決了。偉大的簡化!借助宗教的術(shù)
語,我們創(chuàng)作了文學(xué),紀錄了思想,傳承了知識,甚至建立了政治秩序。所以如果你不知道從哪里開始的話,那就隨便吧。