發(fā)布日期:2007.8.15 作者:Anytao
©2007 Anytao.com ,原創(chuàng)作品,轉(zhuǎn)貼請注明作者和出處。
設(shè)計就像是轉(zhuǎn)魔方,你必須面面俱到。
anytao開始想嘗試嘗試寫點設(shè)計的東西了,只所以有了這個“突如其來”的想法,原因其實很簡單:因為對設(shè)計、架構(gòu)、分層、模式,我很陌生。因為陌生,所以接觸,因為接觸,所以隨筆。系列之構(gòu)思就這么誕生了。因此,這個系列是個方法論,是個雜文集,也是個見證史。我不期望能收獲多少掌聲,但求能保持更多交流。作為技術(shù)的狂熱追求者,我始終認(rèn)為兩件事情是技術(shù)的立命之本:
因為,你會發(fā)現(xiàn)在日新月異,紛繁復(fù)雜的技術(shù)領(lǐng)域里,一切都在變,一切都在趕,我們拼命的狂追,換來一片的豪賭。唯一不變的,一是底層,二是設(shè)計。所以我只關(guān)注這兩個,也只關(guān)注這兩個,這是我認(rèn)為的學(xué)習(xí)方法論中的第一守則:確定不變的追求方向。
那么這個系列將關(guān)注些什么方向呢?
當(dāng)年,petshop作為.NET和J2EE兩個派別之爭的產(chǎn)物,坐在了潮流的風(fēng)口上,時間已然過去,當(dāng)時硝煙早已消失。我們慶幸的是petshop一路走來,從1.0到4.0,綜觀其設(shè)計的脈搏,能夠感受到架構(gòu)的日漸成熟和演變,這是技術(shù)之爭留給我們最大的看點。
(圖片來源:MSDN)
從1.0的簡單3層BS系統(tǒng)架構(gòu),到4.0實現(xiàn)較復(fù)雜的分層結(jié)構(gòu),同時引入數(shù)據(jù)緩存、異步處理機(jī)制,petshop成為典型的分層結(jié)構(gòu)的代表為架構(gòu)設(shè)計的學(xué)習(xí)提供了良好的資源與素材。從歷史的遺跡中,我們挖掘到的是什么?
沒有一成不變的設(shè)計,也沒有一成不變的架構(gòu)。方案是永遠(yuǎn)隨著需求,隨著技術(shù)而不斷重構(gòu),設(shè)計之美就體現(xiàn)在不斷的否定與自我否定中。本系列不是討論petshop的專題,這方面的討論已經(jīng)很多了,我們沒有必要再造輪子。因此,更關(guān)注如何,怎樣和思想,是這里的討論。
那么,設(shè)計、架構(gòu)應(yīng)該從哪兒入手,又如何進(jìn)行?面向?qū)ο蟮脑瓌t又是什么?設(shè)計模式又如何融入到我們的架構(gòu)體系中?這一系列的問題,我想說可能根本沒有答案,而確有方法。本系列就力圖從方法的角度入手,以并非專業(yè)又并非經(jīng)驗的視角來闡釋如何以菜鳥的立場來“空談”設(shè)計。因為,你不能說設(shè)計只是架構(gòu)師的事兒,否則滿篇的代碼又如何體現(xiàn)藝術(shù)之美呢?作為菜鳥, 我們少了經(jīng)驗,但是多了思考,因此對架構(gòu)、對設(shè)計、對模式的探索,應(yīng)該從一定的方法做起,這是本文和本系列試圖達(dá)到的目標(biāo)。
作者力圖以例小心求證設(shè)計,以圖來大膽闡釋方法。例如,軟件設(shè)計的分離點應(yīng)該如何來考慮呢?
分層角度,框架基礎(chǔ),功能劃分,一個系統(tǒng)設(shè)計要綜合考慮這些因素??赡苓€不止這些,也可能只是其中的一點,具體的架構(gòu)要看具體的需求。然而探求架構(gòu)和設(shè)計方法的時候,我們要把握基本的方法和思路去迎合前人總結(jié)的經(jīng)驗,也叫科學(xué)。
以上述思路來回顧petshop 4.0的架構(gòu),我們很明顯的感受到,良好的設(shè)計正是巧妙的耦合了架構(gòu)設(shè)計中的諸多因素,提出了近乎完美的方案。分層角度來看,在petshop中自不必說,明顯的三層架構(gòu)體現(xiàn)了良好的系統(tǒng)分離與耦合;通用角度來看,.NET Framework作為技術(shù)通用組件,提供了系統(tǒng)實現(xiàn)的基本技術(shù)基礎(chǔ),而對Profile和Membership的分離,則體現(xiàn)了領(lǐng)域通用部分的價值;模塊角度來看,由于petshop本身的業(yè)務(wù)需求比較簡單,因此模塊劃分不夠明顯,但是對Order的處理可以看作簡單的業(yè)務(wù)模塊了。而其他方面,例如設(shè)計模式,面向接口開發(fā)的技術(shù),也同樣體現(xiàn)在petshop的大框架中,讓我們受益非淺。
從架構(gòu)到設(shè)計,漫游在一個技術(shù)而藝術(shù)的世界,一直是我的夢想。對技術(shù)的駕馭,不是看你了解多少細(xì)節(jié),更重要是你控制了多少格局。架構(gòu)設(shè)計就是一個控制格局的藝術(shù),只有游刃有余的駕馭了如何將技術(shù)細(xì)節(jié)變成就輕駕熟的應(yīng)用,才是設(shè)計的最高境界。屆時,你會發(fā)現(xiàn),原來技術(shù)可以更美的。所以,我要說,設(shè)計,應(yīng)該多一點。