免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
[從架構(gòu)到設(shè)計]第一回:設(shè)計,應(yīng)該多一點

[從架構(gòu)到設(shè)計]

第一回:設(shè)計,應(yīng)該多一點

發(fā)布日期:2007.8.15 作者:Anytao

©2007 Anytao.com ,原創(chuàng)作品,轉(zhuǎn)貼請注明作者和出處。

 

設(shè)計就像是轉(zhuǎn)魔方,你必須面面俱到。 

1. 引言

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)注些什么方向呢?

  • Architecture---架構(gòu)
  • Method&Process---設(shè)計方法與設(shè)計過程
  • OO--面向?qū)ο?
  • Design Pattern---設(shè)計模式
  • Learning Method---學(xué)習(xí)方法論

2. 從架構(gòu)到設(shè)計

當(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í)提供了良好的資源與素材。從歷史的遺跡中,我們挖掘到的是什么?

  • 思想:分層架構(gòu),3層也好,7層也罷。根據(jù)的是具體的系統(tǒng)需求而定,但是基本的表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層的有機(jī)劃分,是一種導(dǎo)向。而由分層帶來的性能影響,可以通過數(shù)據(jù)緩存、異步處理機(jī)制來彌補。
  • 方法:模式就是方法,petshop中就不乏模式的大量應(yīng)用與技巧,抽象工廠模式完成對象創(chuàng)建;策略模式封裝業(yè)務(wù)行為。
  • 策略:面向接口的設(shè)計,剝離了層與層之間的強(qiáng)耦合,使得各個模塊保持相對的獨立性,體現(xiàn)了封裝變化的基本思想。
  • 技巧:表現(xiàn)層中以masterpage來實現(xiàn)對頁面的控制,既省時又省力。
  • 缺陷:沒有應(yīng)用ORM,數(shù)據(jù)和實體的分離不夠徹底。希望在5.0中有更好的方案。

沒有一成不變的設(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)該如何來考慮呢?

 

  • 首先,分層思想是從職責(zé)角度對架構(gòu)進(jìn)行了約束,表現(xiàn)層、邏輯層、數(shù)據(jù)層各負(fù)其責(zé),層與層之間以接口進(jìn)行信息交互,減少耦合度。
  • 其次,框架和通用組件則是從通用性角度提高了系統(tǒng)復(fù)用并減少耦合度,例如,在一個應(yīng)用系統(tǒng)中,.NET Framework是技術(shù)通用組件,提供了系統(tǒng)開發(fā)數(shù)以千萬計類,而系統(tǒng)中的進(jìn)度控制、消息控制和異常處理可以開發(fā)為專用的模塊,作為領(lǐng)域通用組件,然后在此基礎(chǔ)上再實現(xiàn)具體的業(yè)務(wù)需求。
  • 最后,模塊化思想則是從功能點對系統(tǒng)進(jìn)行了分離與封裝。一個大型的系統(tǒng),一定是分成多個功能模塊進(jìn)行的開發(fā),每個子模塊甚至也有必要進(jìn)行架構(gòu)設(shè)計和粒度劃分,這主要依賴與其在系統(tǒng)中的復(fù)雜度和重要度。核心的子系統(tǒng)設(shè)計,最好落實到具體的類設(shè)計,對粒度的把握也是架構(gòu)設(shè)計值得思考的話題。

分層角度,框架基礎(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的大框架中,讓我們受益非淺。 

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)該多一點。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
PetShop的系統(tǒng)架構(gòu)設(shè)計
系統(tǒng)架構(gòu)師
這9個關(guān)于微服務(wù)的干貨知識,別說你不知道!
軟件架構(gòu)設(shè)計系列總結(jié)
架構(gòu)系統(tǒng)松耦合的關(guān)鍵!
高級系統(tǒng)架構(gòu)師培訓(xùn)筆記
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服