
從實(shí)用角度來看,優(yōu)秀的軟件架構(gòu)不應(yīng)該進(jìn)行過度設(shè)計(jì),如果設(shè)計(jì)復(fù)雜度較高,應(yīng)考慮軟件維護(hù)者是否能接受這樣的架構(gòu)設(shè)計(jì),以及其可能帶來的長期維護(hù)成本。
軟件架構(gòu)設(shè)計(jì)亦應(yīng)堅(jiān)固可靠,其可以應(yīng)對內(nèi)外界多種不同類型的攻擊,提供可靠準(zhǔn)確的輸出,面對外界的變化上,應(yīng)響應(yīng)迅速及時(shí),靈活可擴(kuò)展。
同樣地,軟件架構(gòu)也應(yīng)該具備美觀性,整潔代碼易于閱讀,更易于維護(hù),能使得維護(hù)者從直觀上對功能產(chǎn)生更清晰的認(rèn)識,和更快速的處理變化。

《整潔代碼之道》一書中曾提起代碼整潔的優(yōu)勢:
代碼質(zhì)量與其整潔度成正比。干凈的代碼,既在質(zhì)量上較為可靠,也為后期維護(hù)、升級奠定了良好基礎(chǔ)。
優(yōu)秀的軟件架構(gòu)亦是組件抽象,沒有復(fù)雜依賴關(guān)系,易于擴(kuò)展分離的。
美國著名軟件先驅(qū)Brad Fitzpatrick在建設(shè)LiveJournal,這個(gè)優(yōu)秀的虛擬寫作社區(qū)之時(shí),為系統(tǒng)架構(gòu)設(shè)計(jì)做出了非常多重要的決策。他在為LiveJournal增加基礎(chǔ)設(shè)施時(shí),常常會詢問自己,這個(gè)新增的基礎(chǔ)架構(gòu)是否必須要和LiveJournal綁定在一起,這使他充分重視解決依賴關(guān)系。所以,他的分布式高速緩存系統(tǒng)Memcached等都是抽象的,這些決定使他的系統(tǒng)沒有產(chǎn)生復(fù)雜的依賴關(guān)系,具有很高的擴(kuò)展性和可維護(hù)性。

美國建筑師路易·康在《靜謐與光明》中曾經(jīng)提到:
一座偉大的建筑物,按我的看法,必須從無可量度的狀況開始,當(dāng)它被設(shè)計(jì)著的時(shí)候又必須通過所有可以量度的手段,最后又一定是無可量度的。建筑房屋的唯一途徑,也就是使建筑物呈現(xiàn)眼前的唯一途徑,是通過可量度的手段。你必須服從自然法則。一定量的磚,施工方法以及工程技術(shù)均在必須之列。到最后,建筑物成了生活的一部分,它發(fā)生出不可量度的氣質(zhì),煥發(fā)出活生生的精神。
我們也可以用這段話,來描述一幢具有優(yōu)秀的架構(gòu)的軟件“摩天大樓”。
想全面系統(tǒng)地了解計(jì)算機(jī)軟件架構(gòu)的知識,還可以參考《移動開發(fā)架構(gòu)設(shè)計(jì)實(shí)戰(zhàn)》,掌握架構(gòu)體系知識。
