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