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

