敏捷架構(gòu)設(shè)計IAS2017互聯(lián)網(wǎng)架構(gòu)峰會_第1頁
敏捷架構(gòu)設(shè)計IAS2017互聯(lián)網(wǎng)架構(gòu)峰會_第2頁
敏捷架構(gòu)設(shè)計IAS2017互聯(lián)網(wǎng)架構(gòu)峰會_第3頁
敏捷架構(gòu)設(shè)計IAS2017互聯(lián)網(wǎng)架構(gòu)峰會_第4頁
敏捷架構(gòu)設(shè)計IAS2017互聯(lián)網(wǎng)架構(gòu)峰會_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

敏捷架構(gòu)設(shè)計汪亮亮主要內(nèi)容架構(gòu)和軟件架構(gòu)敏捷架構(gòu)設(shè)計時機軟件架構(gòu)技術(shù)債務(wù)敏捷架構(gòu)師什么是架構(gòu)?架構(gòu)架構(gòu)不敏捷敏捷會損壞架構(gòu)軟件整體結(jié)構(gòu)與抽象的描述構(gòu)筑、建造架構(gòu)定義架構(gòu)難以扭轉(zhuǎn)的決策軟件架構(gòu)軟件的高級形式和流程,與問題領(lǐng)域無關(guān)但與預(yù)期的用戶體驗有關(guān)架構(gòu)是寬泛的SimonBrown《SoftwareArchitectureforDevelopers》架構(gòu)反映一個系統(tǒng)成型的關(guān)鍵作用的設(shè)計決策,這里的關(guān)鍵性可以由變化決定如果您沒有付出一定程度的努力,是無法扭轉(zhuǎn)架構(gòu)決策的例子:編程語言是一種非常重要的決策。試想在項目的第一天,您選擇了Java,3個月后,您又覺得Go可能是更好的語言選擇。您已經(jīng)花了3個月時間編寫Java,不可能快速扭轉(zhuǎn)這一決策。軟件架構(gòu)是具體的分層架構(gòu)

事件驅(qū)動架構(gòu)微核架構(gòu)微服務(wù)架構(gòu)云架構(gòu)PresentationLayer分層架構(gòu)ComponentComponentComponentBusinessLayerComponentComponentComponentPersistenceLayerComponentComponentComponentDatabaseLayerDBDBDB分層架構(gòu)優(yōu)點模擬接口,獨立測試分工明確結(jié)構(gòu)簡單,容易理解開發(fā)缺點升級時,要暫停服務(wù)功能改動時,部署麻煩擴展性差,每層都擴展EventProcessor事件驅(qū)動架構(gòu)EventqueueEventMediatorEventchannelEventchannelmodulemodulemodulemoduleEventProcessormodulemodulemodulemodule事件隊列:接受事件入口分發(fā)器:把不同事件分發(fā)到不同的業(yè)務(wù)邏輯單元事件通道:分發(fā)器和處理器聯(lián)系渠道處理器:業(yè)務(wù)處理邏輯單元事件驅(qū)動架構(gòu)優(yōu)點獨立卸載和加載,容易部署異步,不阻塞分布式異步,擴展性好缺點異步處理,開發(fā)復(fù)雜難支持原子操作,回滾難分布和異步架構(gòu)較難以測試微核架構(gòu)

CoreSystemPlug-inComponentPlug-inComponentPlug-inComponentPlug-inComponentPlug-inComponentPlug-inComponent微核架構(gòu)優(yōu)點容易部署逐步增加功能功能延伸性好可定制性高缺點開發(fā)難度高,內(nèi)核插件通信擴展性差,不易分布式微服務(wù)架構(gòu)UserInterfaceLayerServiceComponentmodulemodulemodulemoduleServiceComponentmodulemoduleClientRequestsClientRequestsClientRequests微服務(wù)架構(gòu)優(yōu)點容易部署容易開發(fā),服務(wù)組件開發(fā)易于測試,服務(wù)單獨測試擴展性好,服務(wù)低耦合缺點拆分很細(xì),服務(wù)可能很多服務(wù)間通信困難難以實現(xiàn)原子操作云架構(gòu)ProcessUnitDBcalculateVirtualizedMiddlewareMessagingGridDataGridProcessingGridDeploymentManagerProcessUnitDBcalculate云架構(gòu)優(yōu)點高負(fù)載高擴展性缺點實現(xiàn)很復(fù)雜比較難以測試軟件架構(gòu)也是架構(gòu)難以扭轉(zhuǎn)的決策難以改變的高級形式和流程敏捷架構(gòu)何時開始預(yù)先決定架構(gòu)的方方面面嗎重構(gòu)過程中自然呈現(xiàn)架構(gòu)嗎架構(gòu)會隨時間演變嗎敏捷架構(gòu)設(shè)計思路測試驅(qū)動TDD重構(gòu)軟件架構(gòu)呈現(xiàn)開發(fā)之前決定軟件架構(gòu)不規(guī)劃所有的產(chǎn)品功能。產(chǎn)品功能無法預(yù)測,軟件架構(gòu)在變,需要做好隨著改變的準(zhǔn)備開發(fā)過程中決定軟件架構(gòu)開發(fā)前構(gòu)建架構(gòu)TDD設(shè)計軟件架構(gòu)了解用戶和產(chǎn)品如何交互,確定用戶預(yù)期體驗,進(jìn)而確定軟件的架構(gòu)石頭剪刀布游戲-初版需求故事:Feature:PlayScenario:Rockv.ScissorsGivenplayeronethrowsrockAndplayertwothrowsscissorsThenplayeronewinds并未提供充足的有關(guān)用戶預(yù)期體驗的信息。玩家一和玩家二出石頭和剪刀,動作輸入后查看贏家?是使用應(yīng)用玩游戲?石頭剪刀布游戲-升級需求故事:Feature:PlayScenario:Rockv.ScissorsGivenplayeronethrowsrockinreallifeAndplayertwothrowsscissorsinreallifeWhenoneofthementersthethrowsintotheapplicationThentheapplicationtellsthemthattheplayeronewinsRockScissorsPlay!P1P2Step1:EnterthrowsStep2:Click“Play!”PlayeronewinsStep3:seeoutcome石頭剪刀布游戲-變更需求故事:Feature:PlayScenario:Rockv.ScissorsGivenplayeronesubmitsa“rock”throwWhenplayertwosubmitsa“scissors”throwThenplayeroneshouldseethatheorshewonAndplayertwoshouldseethatheorshelostTHROWRockPaperPlayerOneScissorsWaitingOnOpponentYou

WinTimeTHROWRockPaperScissorsPlayerTwoYou

Lost開發(fā)中構(gòu)建架構(gòu)依據(jù)預(yù)期用戶體驗設(shè)計初期架構(gòu)開始用戶體驗發(fā)生改變增加/重構(gòu)用戶體驗的架構(gòu)改變架構(gòu)?優(yōu)化后的軟件架構(gòu)否是架構(gòu)債務(wù)WardCunningHam沃德·坎寧安計算機程序員和Wiki概念的發(fā)明者。設(shè)計模式和敏捷軟件方法的先驅(qū)之一。開發(fā)團隊在設(shè)計或架構(gòu)選型時,從短期效應(yīng)的角度選擇易于實現(xiàn)的方案,但從長遠(yuǎn)看,這種方案會帶來更消極的影響,亦即開發(fā)團隊所欠的債務(wù)。架構(gòu)債務(wù)定義MartinFowler馬丁·福勒“敏捷軟件開發(fā)宣言”創(chuàng)作者之一,ThoughtWorks公司的首席科學(xué)家。架構(gòu)債務(wù)類似于金融債務(wù),會產(chǎn)生利息。利息指由于魯莽的設(shè)計決策導(dǎo)致未來的開發(fā)中付出更多努力的后果??梢岳^續(xù)支付利息,也可以重構(gòu)設(shè)計將本金一次付清。雖然一次性付清本金需要代價,卻可以降低未來的利息。技術(shù)債務(wù)四象限技術(shù)債務(wù)優(yōu)秀團隊中庸團隊混亂團隊拙劣團隊技術(shù)開發(fā)總是精益求精。唯一不足是開發(fā)中又發(fā)現(xiàn)更優(yōu)的技術(shù)方案,有技術(shù)追求,比如Google等對技術(shù)有追求,迫于交付壓力不得不用臨時拙劣的方案代替。國內(nèi)很多大公司都這樣。沒有人知道好標(biāo)準(zhǔn)是什么,做事情由自己性子來,無組織、流程、標(biāo)準(zhǔn)。團隊中有人清楚好的架構(gòu),但是管理混亂,沒時間設(shè)計,敷衍了事。解決技術(shù)債務(wù)無論哪種團隊,都會產(chǎn)生技術(shù)債務(wù),不要心存僥幸心理!系統(tǒng)重構(gòu)瀑布式開發(fā)RequirementsAnalysisDesign6months…….ChangesChanges6人,2年的小項目需求記錄:3個月分析:1個月架構(gòu)設(shè)計:1個月更改優(yōu)化:1個月如果客戶需求更改,可能再次進(jìn)行更改優(yōu)化流程敏捷開發(fā)RequirementslistRequirementsforiterationImplementationDesignTestingDocumentationDailyIterations1monthIteration可工作的版本軟件(Beta)快速

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論