一、架構(gòu)的含義
許多人對什么是架構(gòu)或者架構(gòu)設(shè)計包含什么內(nèi)容比較模糊。我就來說上幾句。
‘什么是架構(gòu)’涉及定義,需要**性,難免會有爭論。不過,以下幾個理解估計共鳴者不少。
1、架構(gòu)是一種設(shè)計
我們平時說‘張三,你做一下架構(gòu)設(shè)計;李四,請將架構(gòu)(設(shè)計)圖給我看一下’,總是將架構(gòu)與設(shè)計關(guān)聯(lián)使用。事實上,英文表述是‘Architecture Design’,也是這個意思。
那么,已經(jīng)有了‘設(shè)計’,為何還要‘架構(gòu)’這個新名詞呢?
之所以將‘架構(gòu)’單列出來,其實是跟軟件的規(guī)模越來越大有關(guān)。蓋一個民房不大需要設(shè)計,那些5個人的小施工隊就可以搞定;或者蓋個6層樓的小高層,簡單的設(shè)計完全足夠了。
2、架構(gòu)是高層設(shè)計
軟件工程中有個基本方法叫‘自更向下、分而治之’。架構(gòu)設(shè)計就是高層設(shè)計,與以前的名詞‘系統(tǒng)設(shè)計’是一致的。而我們平時說的設(shè)計(非架構(gòu)),可以理解為‘詳細設(shè)計(Detail Design)’。
二、架構(gòu)的內(nèi)容或分類
不少人以為架構(gòu)就是指軟件邏輯設(shè)計,事實上就象蓋高樓一樣,除了主體建筑設(shè)計,還有強電、弱電、供水、通風(fēng)、裝修設(shè)計。
軟件架構(gòu)通常包含以下內(nèi)容(也可稱為分類):
通常意義上的架構(gòu),較多是指某一應(yīng)用的(軟件)架構(gòu),但又更非簡單的數(shù)據(jù)架構(gòu)或者邏輯架構(gòu)。
1)業(yè)務(wù)架構(gòu)(BA,Business Architectue)
更容易被大家忽略(甚至于許多技術(shù)人員不認可)的是‘業(yè)務(wù)架構(gòu)’。–周愛民同學(xué)去支付寶,角色就是‘業(yè)務(wù)架構(gòu)’。
但是千萬別忽略的這個‘業(yè)務(wù)架構(gòu)’,因為它是其它3個架構(gòu)的引導(dǎo)。業(yè)務(wù)架構(gòu)的核心是整理業(yè)務(wù)需求,列出功能,描述出業(yè)務(wù)藍圖。
為了實現(xiàn)這個業(yè)務(wù)藍圖,就需要轉(zhuǎn)換成應(yīng)用的軟件架構(gòu),通常由二部分表述:邏輯架構(gòu)、數(shù)據(jù)架構(gòu)。
2)邏輯架構(gòu)(LA,Logical Architectue)
通常用領(lǐng)域模型來表述。
3)數(shù)據(jù)架構(gòu)(DA,Data Architectue)
數(shù)據(jù)架構(gòu)設(shè)計就是決定數(shù)據(jù)的內(nèi)存與存儲形式,主要是指后者。以前我們稱為數(shù)據(jù)存貯設(shè)計。
單機軟件時,只需要設(shè)計數(shù)據(jù)結(jié)構(gòu);隨著C/S系統(tǒng)的出現(xiàn),主要是DBSchema設(shè)計;隨著大型互聯(lián)網(wǎng)的出現(xiàn),數(shù)據(jù)變成海量,讓系統(tǒng)更具備scalability就顯得異常重要–這就是數(shù)據(jù)架構(gòu)(DA)。–大輝同學(xué)之前就是支付寶的DA。
4)物理(總署)架構(gòu)(PA,Physical Deployment Architectue)
三、一些誤解
1)架構(gòu)師是編程高手。
所有人都承認貝聿銘是偉大的建筑設(shè)計師,但沒有人認為他是個
2)架構(gòu)師是全才
貝聿銘更善長的是主體建筑設(shè)計,但不見得精通強電、弱電、供水、通風(fēng)的設(shè)計;即使某些方面也懂,但沒有人會認為他是那方面的大師。
鬼谷子:雜論架構(gòu),希望對您有用。
查看更多寧波網(wǎng)站制作鬼谷子架構(gòu)