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

