發(fā)布日期:2007.8.15 作者:Anytao
©2007 Anytao.com ,原創(chuàng )作品,轉貼請注明作者和出處。

設計就像是轉魔方,你必須面面俱到。
anytao開(kāi)始想嘗試嘗試寫(xiě)點(diǎn)設計的東西了,只所以有了這個(gè)“突如其來(lái)”的想法,原因其實(shí)很簡(jiǎn)單:因為對設計、架構、分層、模式,我很陌生。因為陌生,所以接觸,因為接觸,所以隨筆。系列之構思就這么誕生了。因此,這個(gè)系列是個(gè)方法論,是個(gè)雜文集,也是個(gè)見(jiàn)證史。我不期望能收獲多少掌聲,但求能保持更多交流。作為技術(shù)的狂熱追求者,我始終認為兩件事情是技術(shù)的立命之本:
因為,你會(huì )發(fā)現在日新月異,紛繁復雜的技術(shù)領(lǐng)域里,一切都在變,一切都在趕,我們拼命的狂追,換來(lái)一片的豪賭。唯一不變的,一是底層,二是設計。所以我只關(guān)注這兩個(gè),也只關(guān)注這兩個(gè),這是我認為的學(xué)習方法論中的第一守則:確定不變的追求方向。
那么這個(gè)系列將關(guān)注些什么方向呢?
當年,petshop作為.NET和J2EE兩個(gè)派別之爭的產(chǎn)物,坐在了潮流的風(fēng)口上,時(shí)間已然過(guò)去,當時(shí)硝煙早已消失。我們慶幸的是petshop一路走來(lái),從1.0到4.0,綜觀(guān)其設計的脈搏,能夠感受到架構的日漸成熟和演變,這是技術(shù)之爭留給我們最大的看點(diǎn)。

(圖片來(lái)源:MSDN)
從1.0的簡(jiǎn)單3層BS系統架構,到4.0實(shí)現較復雜的分層結構,同時(shí)引入數據緩存、異步處理機制,petshop成為典型的分層結構的代表為架構設計的學(xué)習提供了良好的資源與素材。從歷史的遺跡中,我們挖掘到的是什么?
沒(méi)有一成不變的設計,也沒(méi)有一成不變的架構。方案是永遠隨著(zhù)需求,隨著(zhù)技術(shù)而不斷重構,設計之美就體現在不斷的否定與自我否定中。本系列不是討論petshop的專(zhuān)題,這方面的討論已經(jīng)很多了,我們沒(méi)有必要再造輪子。因此,更關(guān)注如何,怎樣和思想,是這里的討論。
那么,設計、架構應該從哪兒入手,又如何進(jìn)行?面向對象的原則又是什么?設計模式又如何融入到我們的架構體系中?這一系列的問(wèn)題,我想說(shuō)可能根本沒(méi)有答案,而確有方法。本系列就力圖從方法的角度入手,以并非專(zhuān)業(yè)又并非經(jīng)驗的視角來(lái)闡釋如何以菜鳥(niǎo)的立場(chǎng)來(lái)“空談”設計。因為,你不能說(shuō)設計只是架構師的事兒,否則滿(mǎn)篇的代碼又如何體現藝術(shù)之美呢?作為菜鳥(niǎo), 我們少了經(jīng)驗,但是多了思考,因此對架構、對設計、對模式的探索,應該從一定的方法做起,這是本文和本系列試圖達到的目標。
作者力圖以例小心求證設計,以圖來(lái)大膽闡釋方法。例如,軟件設計的分離點(diǎn)應該如何來(lái)考慮呢?

分層角度,框架基礎,功能劃分,一個(gè)系統設計要綜合考慮這些因素??赡苓€不止這些,也可能只是其中的一點(diǎn),具體的架構要看具體的需求。然而探求架構和設計方法的時(shí)候,我們要把握基本的方法和思路去迎合前人總結的經(jīng)驗,也叫科學(xué)。
以上述思路來(lái)回顧petshop 4.0的架構,我們很明顯的感受到,良好的設計正是巧妙的耦合了架構設計中的諸多因素,提出了近乎完美的方案。分層角度來(lái)看,在petshop中自不必說(shuō),明顯的三層架構體現了良好的系統分離與耦合;通用角度來(lái)看,.NET Framework作為技術(shù)通用組件,提供了系統實(shí)現的基本技術(shù)基礎,而對Profile和Membership的分離,則體現了領(lǐng)域通用部分的價(jià)值;模塊角度來(lái)看,由于petshop本身的業(yè)務(wù)需求比較簡(jiǎn)單,因此模塊劃分不夠明顯,但是對Order的處理可以看作簡(jiǎn)單的業(yè)務(wù)模塊了。而其他方面,例如設計模式,面向接口開(kāi)發(fā)的技術(shù),也同樣體現在petshop的大框架中,讓我們受益非淺。
從架構到設計,漫游在一個(gè)技術(shù)而藝術(shù)的世界,一直是我的夢(mèng)想。對技術(shù)的駕馭,不是看你了解多少細節,更重要是你控制了多少格局。架構設計就是一個(gè)控制格局的藝術(shù),只有游刃有余的駕馭了如何將技術(shù)細節變成就輕駕熟的應用,才是設計的最高境界。屆時(shí),你會(huì )發(fā)現,原來(lái)技術(shù)可以更美的。所以,我要說(shuō),設計,應該多一點(diǎn)。
聯(lián)系客服