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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論