日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

架構(gòu)設(shè)計(jì)怎么做,設(shè)計(jì)原則及面試題詳解?( 二 )


其次是簡單原則,大道至簡,一切簡單化,用最簡單的解決方案來解決問題。KISS (Keep Simple and Stupid) 是用戶體驗(yàn)的最高境界,同樣它適用于架構(gòu)設(shè)計(jì) ;簡單是軟件設(shè)計(jì)的目標(biāo),簡單代碼占用的時(shí)間少,產(chǎn)生的漏洞少,并且易于修改 、維護(hù)、擴(kuò)展和重構(gòu);不要以為簡單設(shè)計(jì)是沒有技術(shù)含量,用簡單設(shè)計(jì)處理復(fù)雜問題更需要優(yōu)秀的架構(gòu)設(shè)計(jì)能力;軟件系統(tǒng)之所以會(huì)被說成復(fù)雜,體現(xiàn)在結(jié)構(gòu)復(fù)雜以及邏輯復(fù)雜,而一個(gè)復(fù)雜問題是由多個(gè)簡單問題構(gòu)成的,難的是如何拆解它,將它拆解為多個(gè)問題,逐個(gè)解決,把復(fù)雜邏輯拆分為一個(gè)個(gè)單一執(zhí)行單元,單個(gè)執(zhí)行單元代碼量一定要盡可能少 。邏輯復(fù)雜系統(tǒng)在內(nèi)部實(shí)現(xiàn)所有邏輯功能,幾乎會(huì)導(dǎo)致每個(gè)環(huán)節(jié)都有問題,它需要面對(duì)不斷變化的需求,所有人維護(hù)同一套代碼,整個(gè)開發(fā)、測(cè)試、上線流程變得異常繁重 。
最后是演化原則, 只有變化是永恒不變的 ,優(yōu)秀架構(gòu)一定是以業(yè)務(wù)不斷發(fā)展而不斷演進(jìn)而來;設(shè)計(jì)架構(gòu)要滿足當(dāng)時(shí)業(yè)務(wù)需要 ,具有可擴(kuò)展性和持續(xù)開發(fā)能力,能夠應(yīng)變后續(xù)架構(gòu)升級(jí)和調(diào)整;要不斷地在實(shí)際應(yīng)用過程中迭代,保留優(yōu)秀設(shè)計(jì),修復(fù)有缺陷設(shè)計(jì),改正錯(cuò)誤設(shè)計(jì),剔除無用設(shè)計(jì),使架構(gòu)逐漸完善,要將變化部分和不變部分區(qū)分開 。
04
架構(gòu)設(shè)計(jì)方法論
提到架構(gòu)設(shè)計(jì)方法論,先介紹下 TOGAF(The Open Group Architecture Framework),它由國際標(biāo)準(zhǔn)權(quán)威組織The Open Group制定 ,是一個(gè)行業(yè)標(biāo)準(zhǔn)的體系架構(gòu)框架。它是一套方法和工具,主要包含TOGAF能力框架、 TOGAF架構(gòu)開發(fā)方法、 TOGAF企業(yè)連續(xù)體和工具三大部分 。
下面主要介紹下軟件開發(fā)方法 (Architecture Development Method) ADM
【架構(gòu)設(shè)計(jì)怎么做,設(shè)計(jì)原則及面試題詳解?】ADM 軟件開發(fā)方法是由一組按照架構(gòu)領(lǐng)域的架構(gòu)開發(fā)順序而排列成一個(gè)環(huán)的多個(gè)階段所構(gòu)成的, ADM基礎(chǔ)結(jié)構(gòu)圖如下圖所示 。
圖一 ADM基礎(chǔ)結(jié)構(gòu)圖
預(yù)備階段: 梳理業(yè)務(wù)需求,了解需求背后真實(shí)的業(yè)務(wù)目標(biāo);
架構(gòu)遠(yuǎn)景: 最終需要達(dá)成到一個(gè)效果,需要提前做規(guī)劃;
業(yè)務(wù)架構(gòu)、信息系統(tǒng)架構(gòu)、技術(shù)架構(gòu)屬于架構(gòu)域設(shè)計(jì)框架 。
技術(shù)及解決方案: 碰到技術(shù)問題都需要有一套甚至是多套解決方案,架構(gòu)設(shè)計(jì)職責(zé)就是做取舍、做決策;
遷移規(guī)劃、實(shí)施治理: 后續(xù)線上運(yùn)維相關(guān)事項(xiàng),給出合理解決方案 。
架構(gòu)設(shè)計(jì)方法論是指導(dǎo)你如何來做架構(gòu)設(shè)計(jì),它有架構(gòu)域劃分, 在軟件設(shè)計(jì)中架構(gòu)域包括:業(yè)務(wù)架構(gòu)、數(shù)據(jù)架構(gòu)、產(chǎn)品架構(gòu)、應(yīng)用架構(gòu)、技術(shù)架構(gòu) ,首先需要進(jìn)行業(yè)務(wù)需求結(jié)合業(yè)務(wù)場景的梳理,熟悉業(yè)務(wù)后,通過歸納以及抽象的方式,形成業(yè)務(wù)架構(gòu),依據(jù)業(yè)務(wù)架構(gòu)的理解,研發(fā)人員需要對(duì)業(yè)務(wù)做進(jìn)一步的抽象和沉淀,畫出與之相對(duì)應(yīng)的數(shù)據(jù)架構(gòu)和應(yīng)用架構(gòu),最后技術(shù)人員通過技術(shù)架構(gòu)來做功能實(shí)現(xiàn) 。業(yè)務(wù)架構(gòu)是目標(biāo)、是方向,應(yīng)用架構(gòu)是抽象、是歸納,技術(shù)架構(gòu)是手段、是系統(tǒng)落地的參考物 。
下圖為ADM架構(gòu)開發(fā)概念藍(lán)圖 。

架構(gòu)設(shè)計(jì)怎么做,設(shè)計(jì)原則及面試題詳解?


圖二 ADM架構(gòu)開發(fā)概念藍(lán)圖
首先來看 業(yè)務(wù)架構(gòu) ,業(yè)務(wù)一般為按照 場景層、產(chǎn)品功能層、領(lǐng)域模型層、依賴層這四層畫出業(yè)務(wù)架構(gòu)圖 。
場景層:描述業(yè)務(wù)場景;
產(chǎn)品功能層:劃分產(chǎn)品功能以及模塊;
領(lǐng)域模型層:通過對(duì)產(chǎn)品功能分析,抽象領(lǐng)域模型;
依賴層:從業(yè)務(wù)層面考慮涉及到底層業(yè)務(wù)依賴哪些子系統(tǒng)或者組件 。
其次是 數(shù)據(jù)架構(gòu) :數(shù)據(jù)架構(gòu)解決的是,第一,需要什么數(shù)據(jù);第二,怎么存儲(chǔ);第三,如何設(shè)計(jì) 。

推薦閱讀