前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第1頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第2頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第3頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第4頁
前端工程師-企業(yè)級系統(tǒng)架構(gòu)的理解_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、企業(yè)級系統(tǒng)架構(gòu)的理解在我們剛開始學(xué)習(xí)架構(gòu)的時候,首先會想到分層的概念,分層架構(gòu)比較經(jīng)典的是三層架構(gòu),那么,什么是三層架構(gòu)呢?它包括表現(xiàn)層,業(yè)務(wù)層,數(shù)據(jù)訪問層;而對于一個新手來說,從抽象意義上的三層架構(gòu),邏輯上就劃分為三個層。 AD: 這個是最最基本的的三層架架構(gòu)模式式。表現(xiàn)層充充當(dāng)系統(tǒng)統(tǒng)的界面面呈現(xiàn)以以及UII邏輯的的角色,也就是是說,UUI(用用戶界面面)屬于于表現(xiàn)層層;舉一個對對于assp.nnet WebbForrm來說說,人們們喜歡把把對于UUI的控控制邏輯輯(服務(wù)務(wù)器控件件的讀取取、設(shè)置置、事件件等等)寫在頁頁面的后后置隱藏藏代碼中中,并且且依賴業(yè)業(yè)務(wù)邏輯輯層。當(dāng)當(dāng)然,服服務(wù)器控控件

2、支持持?jǐn)?shù)據(jù)綁綁定的功功能,可可以通過過數(shù)據(jù)源源進(jìn)行綁綁定控件件。這樣樣就可以以節(jié)省在在后置隱隱藏中的的代碼。因此,我我們就可可以把表表現(xiàn)層分分為UII用戶界界面以及及UI邏邏輯:UI用戶戶界面的的職責(zé)只只是作為為數(shù)據(jù)輸輸入和輸輸出后的的展示工工作。UI邏輯輯的職責(zé)責(zé)是負(fù)責(zé)責(zé)業(yè)務(wù)邏邏輯層以以及UII用戶界界面之間間的數(shù)據(jù)據(jù)交互,并且盡盡可能地地讓UII邏輯不不依賴于于UI技技術(shù)。其中UII用戶界界面的實實現(xiàn)方式式有很多多,包括括ASPP.NEET,WWinFFormm,WPPF,SSilvverllighht,移移動Weeb,智智能設(shè)備備等等。將表現(xiàn)層層中UII頁面和和UI邏邏輯分離離的策略略中

3、,當(dāng)當(dāng)前使用用最多的的兩種模模式是MMVC模模式和MMVP模模式。MVC模模式,即即模型-視圖-控制器器模式,通過視視圖觸發(fā)發(fā)并執(zhí)行行某個操操作,調(diào)調(diào)用控制制器,通通過控制制器去操操作業(yè)務(wù)務(wù)層,最最終返回回模型,在視圖圖中進(jìn)行行展示。這里的的模型可可以是一一個領(lǐng)域域模型(DM),也可可以是一一個數(shù)據(jù)據(jù)遷移對對象(DDTO)。MVP模模式,即即模型-視圖-展示器器模式,和MVVC模式式有點像像,不同同的是MMVP中中視圖和和模型是是被完全全分離出出來的,視圖中中定義一一個接口口,而展展示器通通過調(diào)用用該接口口的方法法以控制制視圖。因此,視圖和和模型是是松散的的,展示示器也充充當(dāng)了一一個控制制器的

4、角角色,同同時它也也不依賴賴于UII技術(shù)。另外再介介紹一種種模式PPM(PPreeentaatioon MModeel),它可以以說是MMVP的的變體,在PMM中,視視圖不定定義接口口,這里里的模型型只是表表示視圖圖狀態(tài)的的類,視視圖中的的元素被被直接綁綁定到模模型屬性性上。例例如在WWPF中中,WPPF就先先天的具具有數(shù)據(jù)據(jù)雙向綁綁定機制制以及事事件通知知屬性機機制。所以它特特別適用用于WPPF,SSlivverllighht等等等。在開始業(yè)業(yè)務(wù)層之之前,不不得不說說一個前前提,在在一個小小型項目目中,直直接讓表表現(xiàn)層調(diào)調(diào)用業(yè)務(wù)務(wù)層,足足以解決決所有問問題。但但是,當(dāng)當(dāng)項目大大到使用用多種表

5、表現(xiàn)形式式,如使使用了各各種UII技術(shù),ASPP.NEET,WWPF,移動設(shè)設(shè)備等等等,就要要考慮在在你的表表現(xiàn)層和和業(yè)務(wù)層層之間增增加一個個層,以以至于讓讓表現(xiàn)層層和業(yè)務(wù)務(wù)層解耦耦,因為為業(yè)務(wù)層層作為一一個業(yè)務(wù)務(wù)中間件件的平臺臺,最好好不要暴暴露于表表現(xiàn)層中中,這個個層就是是傳說中中的服務(wù)務(wù)層。架架構(gòu)圖又又演化為為:服務(wù)層實實際上并并不執(zhí)行行任何具具體的工工作,其其功能在在于組織織各個業(yè)業(yè)務(wù)對象象,服務(wù)務(wù)層將業(yè)業(yè)務(wù)層所所有的細(xì)細(xì)節(jié)對表表現(xiàn)層都都隱藏起起來,服服務(wù)器將將組織業(yè)業(yè)務(wù)邏輯輯層中的的組件,并且通通過數(shù)據(jù)據(jù)遷移對對象(DDTO)與表現(xiàn)現(xiàn)層交互互,因此此就產(chǎn)生生一個DDTO模模型。為了實

6、現(xiàn)現(xiàn)服務(wù)的的可重用用性,需需要使用用服務(wù)接接口,表表現(xiàn)層通通過規(guī)定定的接口口訪問功功能。服服務(wù)的實實現(xiàn)繼承承服務(wù)接接口,而而服務(wù)的的實現(xiàn)專專注于業(yè)業(yè)務(wù)層的的調(diào)用。對于服務(wù)務(wù)層,常常用的方方法包括括Webb服務(wù)、.NEET RRemootinng、RRestt以及WWCF技技術(shù)。本人比較較建議使使用WCCF作為為服務(wù),因為可可以方便便地通過過配置達(dá)達(dá)到遠(yuǎn)程程調(diào)用服服務(wù)的目目的。服務(wù)層消消除了兩兩個表現(xiàn)現(xiàn)層和業(yè)業(yè)務(wù)層之之間的耦耦合,服服務(wù)層可可以實現(xiàn)現(xiàn)一個遠(yuǎn)遠(yuǎn)程接口口,達(dá)到到多UII技術(shù)甚甚至多平平臺上的的通信。當(dāng)然增加加服務(wù)層層也有缺缺點,假假如使用用WCFF服務(wù),會增加加系統(tǒng)的的調(diào)用開開銷,進(jìn)

7、進(jìn)而影響響性能。業(yè)務(wù)層中中包含系系統(tǒng)所需需要業(yè)務(wù)務(wù)過程上上的實現(xiàn)現(xiàn),并與與下層的的數(shù)據(jù)訪訪問層交交互。我們通常常也叫做做業(yè)務(wù)層層叫做業(yè)業(yè)務(wù)邏輯輯層,但但我認(rèn)為為業(yè)務(wù)邏邏輯層是是屬于業(yè)業(yè)務(wù)層的的一方面面,業(yè)務(wù)務(wù)邏輯更更專注于于業(yè)務(wù)上上邏輯算算法的實實現(xiàn)。因因為業(yè)務(wù)務(wù)層還可可以包括括其他的的方面。業(yè)務(wù)層必必須包括括對業(yè)務(wù)務(wù)實體盡盡心建模模的對象象模型,表達(dá)了了客戶的的所有策策略和需需求的業(yè)業(yè)務(wù)規(guī)則則,因此此就產(chǎn)生生了領(lǐng)域域模型。(PS:如果這這里你不不使用領(lǐng)領(lǐng)域模型型,那么么需要采采用業(yè)務(wù)務(wù)規(guī)則層層進(jìn)行業(yè)業(yè)務(wù)功能能上的業(yè)業(yè)務(wù)規(guī)則則的驗證證和控制制)領(lǐng)域模型型包括對對實體的的屬性定定義,方方法定義義

8、以及實實體與實實體之間間的關(guān)系系。從這這個角度度上看,UMLL建模至至關(guān)重要要,通過過對UMML動態(tài)態(tài)圖和靜靜態(tài)圖的的描述,可以映映射到領(lǐng)領(lǐng)域模型型中。從服務(wù)層層剛才講講到了DDTO模模型,這這里需要要一個機機制將DDTO轉(zhuǎn)轉(zhuǎn)化為領(lǐng)領(lǐng)域模型型,所以以產(chǎn)生了了DTOO映射層層(DTTOMaappeer)。另外業(yè)務(wù)務(wù)層還包包括核心心中間件件技術(shù),包括第第三方組組件,以以及工作作流引擎擎等等。業(yè)務(wù)層需需要考慮慮到一些些與數(shù)據(jù)據(jù)訪問層層交互的的設(shè)計模模式,模模式中包包括事物物腳本模模式、表表模塊模模式、活活動記錄錄模式、領(lǐng)域模模型模式式。事物腳本本模式是是通過方方法來執(zhí)執(zhí)行業(yè)務(wù)務(wù)流程,它是一一個過程程

9、式模型型,事物物腳本的的每個方方法都有有一個特特定的事事物腳本本,它側(cè)側(cè)重于業(yè)業(yè)務(wù)上一一系列流流程上的的順序操操作,它它實現(xiàn)起起來很簡簡單,但但是它有有個致命命的缺點點就是它它會造成成很多重重復(fù)的代代碼。表模塊模模式比起起事物腳腳本模式式,具有有一定的的結(jié)構(gòu),它的思思想也很很簡單,每個數(shù)數(shù)據(jù)表都都定義一一個業(yè)務(wù)務(wù)組件(實體類類,實體體操作類類),在在.NEET中更更多的使使用DaataSSet作作為表模模型的數(shù)數(shù)據(jù)交互互。但是是它也有有一個缺缺點就是是它是從從數(shù)據(jù)庫庫驅(qū)動它它不適合合于大量量的數(shù)據(jù)據(jù)表以及及數(shù)據(jù)表表之間的的復(fù)雜關(guān)關(guān)系?;顒佑涗涗浤J街兄械膶ο笙笾?,可可以包含含數(shù)據(jù)和和方法。它接

10、近近于數(shù)據(jù)據(jù)表的結(jié)結(jié)構(gòu),它它的對象象中執(zhí)行行方法中中可以包包含CRRUD操操作,驗驗證算法法,以及及其他的的計算功功能。一一般來說說,領(lǐng)域域模型不不是太復(fù)復(fù)雜,活活動記錄錄模式是是個好選選擇。當(dāng)當(dāng)然他也也存在問問題,同同樣地,它對于于復(fù)雜的的業(yè)務(wù)上上,維護(hù)護(hù)的成本本也很高高,并且且如果需需求變更更導(dǎo)致數(shù)數(shù)據(jù)庫修修改,就就需要調(diào)調(diào)整記錄錄對象模模型中的的相關(guān)代代碼。經(jīng)典應(yīng)用用:LIINQ-TO-SQLL以及CCasttle ActtiveeReccordd。領(lǐng)域模型型模式是是從領(lǐng)域域驅(qū)動設(shè)設(shè)計中衍衍生來的的,它是是以業(yè)務(wù)務(wù)為核心心的設(shè)計計模式。它對于于復(fù)雜的的業(yè)務(wù)邏邏輯,相相當(dāng)適用用。前三三種方

11、式式使用的的是以數(shù)數(shù)據(jù)驅(qū)動動方式,數(shù)據(jù)驅(qū)驅(qū)動方式式特點簡簡單,但但是當(dāng)系系統(tǒng)到了了一定的的規(guī)模后后,就會會到難以以維護(hù)的的程度。數(shù)據(jù)訪問問層的目目的很明明確,主主要作為為提供數(shù)數(shù)據(jù)持久久化的功功能,包包括數(shù)據(jù)據(jù)的讀取取和寫入入,另外外還必須須包括事事務(wù)處理理,并發(fā)發(fā)控制等等等。操作數(shù)據(jù)據(jù)庫的方方法可以以有兩種種方式,ORMM方式,ADOO.NEET方式式。ORM可可以采用用一些第第三方的的ORMM框架來來實現(xiàn),ADOO.NEET采用用ASPP.NEET自帶帶的數(shù)據(jù)據(jù)庫操作作來實現(xiàn)現(xiàn)。不同的數(shù)數(shù)據(jù)庫具具有不同同的持久久化實現(xiàn)現(xiàn),因此此這里添添加一個個存儲倉倉庫接口口層,來來適應(yīng)不不同的數(shù)數(shù)據(jù)庫實實現(xiàn),這這里你可可以使用用IOCC依賴注注入方式式進(jìn)行數(shù)數(shù)據(jù)庫選選型,可可以利用用Uniity、Sprringg.NEET、CCasttle的的IOCC容器等等等。最后各個個層中都都可以依依賴于公公共基礎(chǔ)礎(chǔ)設(shè)施層層。公共基礎(chǔ)礎(chǔ)設(shè)施層層可以包包括Coommoon通用用模塊,Loggginng日志志模塊,Exccepttionn異常模模塊,CConffiguurattionn配置模模塊,DDI依賴賴注入模模塊,單單元測試試模塊以以及第三三方組件件(例如如NHiiberrnatte、SSpriint.NETT、

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論