架構(gòu)一詞是舶來(lái)品,是architecture的中文翻譯, 其英文的本意是來(lái)源于建筑行業(yè)的建筑藝術(shù)、建筑(風(fēng)格)和結(jié)構(gòu),引入到軟件領(lǐng)域里面來(lái)以后,并沒(méi)有一個(gè)統(tǒng)一的定義。有的人將架構(gòu)定義為:功能+設(shè)計(jì)+構(gòu)造手段,我們可以通俗的理解為:總體設(shè)計(jì)和總體結(jié)構(gòu)。
買(mǎi)過(guò)房子的人都知道5層以下的樓房一般是磚混結(jié)構(gòu),而高層和小高層的樓房都是框架結(jié)構(gòu),樓層越高對(duì)結(jié)構(gòu)要求越高。軟件也是一樣,系統(tǒng)越龐大,生命周期越長(zhǎng),結(jié)構(gòu)的重要性就越明顯。因此,隨著人們對(duì)軟件工程的深刻理解,將架構(gòu)進(jìn)行充分的強(qiáng)調(diào)是很自然的,正如人們?cè)絹?lái)越強(qiáng)調(diào)系統(tǒng)的需求分析,從而有了領(lǐng)域工程師和領(lǐng)域?qū)<业母拍钜粯?。其?shí)強(qiáng)調(diào)軟件架構(gòu)的主要的目的有3個(gè):
重用:人們希望系統(tǒng)能夠重用以前的代碼和設(shè)計(jì),從而提高開(kāi)發(fā)效率;
擴(kuò)展:人們希望在系統(tǒng)能夠保持結(jié)構(gòu)的穩(wěn)定的前提下很容易地?cái)U(kuò)充功能和性能,希望能夠“以靜制動(dòng)“;
簡(jiǎn)潔:常言道,簡(jiǎn)潔就是美,好的架構(gòu)一定易于理解,易于學(xué)習(xí),易于維護(hù),人們希望能夠通過(guò)一個(gè)簡(jiǎn)潔的架構(gòu)來(lái)把握系統(tǒng);
正如我們可以很簡(jiǎn)單地用磚混結(jié)構(gòu)和框架結(jié)構(gòu)來(lái)概括一幢大樓的結(jié)構(gòu),專(zhuān)家們也定義了一些術(shù)語(yǔ)來(lái)定義軟件的架構(gòu)風(fēng)格,如層次結(jié)構(gòu)、B/S結(jié)構(gòu)等。軟件架構(gòu)設(shè)計(jì)是軟件設(shè)計(jì)的一部分,是其中的總體設(shè)計(jì)。軟件的架構(gòu)設(shè)計(jì)有一定的創(chuàng)造性,但它畢竟是一個(gè)工程活動(dòng),架構(gòu)的設(shè)計(jì)是有章可循的,有一定的規(guī)律性的,是可以重復(fù)的,有其穩(wěn)定的模式。當(dāng)然,在系統(tǒng)一開(kāi)始很難可以建立一個(gè)完善的穩(wěn)定的架構(gòu)。迭代是軟件開(kāi)發(fā)過(guò)程中必然的一個(gè)過(guò)程,這是人的思維活動(dòng)的一個(gè)必然階段。
軟件架構(gòu)師實(shí)際上就是軟件的總體設(shè)計(jì)師。首席設(shè)計(jì)師就是總設(shè)計(jì)師,打個(gè)通俗的比方:鄧小平是中國(guó)改革開(kāi)放的總設(shè)計(jì)師,我們用現(xiàn)在的說(shuō)法可以講,鄧小平是中國(guó)改革開(kāi)放的首席架構(gòu)師。架構(gòu)師的形成一定是在實(shí)踐中積累起來(lái)的,而并非上了幾次培訓(xùn)班,讀了幾本書(shū)就可以成功的,架構(gòu)師是在工程實(shí)踐中培養(yǎng)出來(lái)的!
架構(gòu)師也并非是萬(wàn)能的。架構(gòu)師是客戶需求和開(kāi)發(fā)者之間的橋梁。在軟件行業(yè)中,一般提到的架構(gòu)師是技術(shù)架構(gòu)師,而忽略了領(lǐng)域架構(gòu)師或者講是領(lǐng)域工程師的概念。一個(gè)好的領(lǐng)域?qū)<乙欢ㄊ菢I(yè)務(wù)領(lǐng)域的架構(gòu)師,他能夠給出某一個(gè)業(yè)務(wù)領(lǐng)域的架構(gòu),我們可以稱(chēng)為業(yè)務(wù)架構(gòu),只有技術(shù)架構(gòu)和業(yè)務(wù)架構(gòu)緊密結(jié)合才有可能真正創(chuàng)造出一個(gè)好的系統(tǒng)!
買(mǎi)過(guò)房子的人都知道5層以下的樓房一般是磚混結(jié)構(gòu),而高層和小高層的樓房都是框架結(jié)構(gòu),樓層越高對(duì)結(jié)構(gòu)要求越高。軟件也是一樣,系統(tǒng)越龐大,生命周期越長(zhǎng),結(jié)構(gòu)的重要性就越明顯。因此,隨著人們對(duì)軟件工程的深刻理解,將架構(gòu)進(jìn)行充分的強(qiáng)調(diào)是很自然的,正如人們?cè)絹?lái)越強(qiáng)調(diào)系統(tǒng)的需求分析,從而有了領(lǐng)域工程師和領(lǐng)域?qū)<业母拍钜粯?。其?shí)強(qiáng)調(diào)軟件架構(gòu)的主要的目的有3個(gè):
重用:人們希望系統(tǒng)能夠重用以前的代碼和設(shè)計(jì),從而提高開(kāi)發(fā)效率;
擴(kuò)展:人們希望在系統(tǒng)能夠保持結(jié)構(gòu)的穩(wěn)定的前提下很容易地?cái)U(kuò)充功能和性能,希望能夠“以靜制動(dòng)“;
簡(jiǎn)潔:常言道,簡(jiǎn)潔就是美,好的架構(gòu)一定易于理解,易于學(xué)習(xí),易于維護(hù),人們希望能夠通過(guò)一個(gè)簡(jiǎn)潔的架構(gòu)來(lái)把握系統(tǒng);
正如我們可以很簡(jiǎn)單地用磚混結(jié)構(gòu)和框架結(jié)構(gòu)來(lái)概括一幢大樓的結(jié)構(gòu),專(zhuān)家們也定義了一些術(shù)語(yǔ)來(lái)定義軟件的架構(gòu)風(fēng)格,如層次結(jié)構(gòu)、B/S結(jié)構(gòu)等。軟件架構(gòu)設(shè)計(jì)是軟件設(shè)計(jì)的一部分,是其中的總體設(shè)計(jì)。軟件的架構(gòu)設(shè)計(jì)有一定的創(chuàng)造性,但它畢竟是一個(gè)工程活動(dòng),架構(gòu)的設(shè)計(jì)是有章可循的,有一定的規(guī)律性的,是可以重復(fù)的,有其穩(wěn)定的模式。當(dāng)然,在系統(tǒng)一開(kāi)始很難可以建立一個(gè)完善的穩(wěn)定的架構(gòu)。迭代是軟件開(kāi)發(fā)過(guò)程中必然的一個(gè)過(guò)程,這是人的思維活動(dòng)的一個(gè)必然階段。
軟件架構(gòu)師實(shí)際上就是軟件的總體設(shè)計(jì)師。首席設(shè)計(jì)師就是總設(shè)計(jì)師,打個(gè)通俗的比方:鄧小平是中國(guó)改革開(kāi)放的總設(shè)計(jì)師,我們用現(xiàn)在的說(shuō)法可以講,鄧小平是中國(guó)改革開(kāi)放的首席架構(gòu)師。架構(gòu)師的形成一定是在實(shí)踐中積累起來(lái)的,而并非上了幾次培訓(xùn)班,讀了幾本書(shū)就可以成功的,架構(gòu)師是在工程實(shí)踐中培養(yǎng)出來(lái)的!
架構(gòu)師也并非是萬(wàn)能的。架構(gòu)師是客戶需求和開(kāi)發(fā)者之間的橋梁。在軟件行業(yè)中,一般提到的架構(gòu)師是技術(shù)架構(gòu)師,而忽略了領(lǐng)域架構(gòu)師或者講是領(lǐng)域工程師的概念。一個(gè)好的領(lǐng)域?qū)<乙欢ㄊ菢I(yè)務(wù)領(lǐng)域的架構(gòu)師,他能夠給出某一個(gè)業(yè)務(wù)領(lǐng)域的架構(gòu),我們可以稱(chēng)為業(yè)務(wù)架構(gòu),只有技術(shù)架構(gòu)和業(yè)務(wù)架構(gòu)緊密結(jié)合才有可能真正創(chuàng)造出一個(gè)好的系統(tǒng)!