從實(shí)用角度來(lái)看,優(yōu)秀的軟件架構(gòu)不應(yīng)該進(jìn)行過(guò)度設(shè)計(jì)肩袍,如果設(shè)計(jì)復(fù)雜度較高杭棵,應(yīng)考慮軟件維護(hù)者是否能接受這樣的架構(gòu)設(shè)計(jì),以及其可能帶來(lái)的長(zhǎng)期維護(hù)成本氛赐。
軟件架構(gòu)設(shè)計(jì)亦應(yīng)堅(jiān)固可靠魂爪,其可以應(yīng)對(duì)內(nèi)外界多種不同類(lèi)型的攻擊,提供可靠準(zhǔn)確的輸出艰管,面對(duì)外界的變化上滓侍,應(yīng)響應(yīng)迅速及時(shí),靈活可擴(kuò)展牲芋。
同樣地撩笆,軟件架構(gòu)也應(yīng)該具備美觀性尔破,整潔代碼易于閱讀,更易于維護(hù)浇衬,能使得維護(hù)者從直觀上對(duì)功能產(chǎn)生更清晰的認(rèn)識(shí)懒构,和更快速的處理變化。
《整潔代碼之道》一書(shū)中曾提起代碼整潔的優(yōu)勢(shì):
代碼質(zhì)量與其整潔度成正比耘擂。干凈的代碼胆剧,既在質(zhì)量上較為可靠,也為后期維護(hù)醉冤、升級(jí)奠定了良好基礎(chǔ)秩霍。
優(yōu)秀的軟件架構(gòu)亦是組件抽象,沒(méi)有復(fù)雜依賴關(guān)系蚁阳,易于擴(kuò)展分離的铃绒。
美國(guó)著名軟件先驅(qū)Brad Fitzpatrick在建設(shè)LiveJournal,這個(gè)優(yōu)秀的虛擬寫(xiě)作社區(qū)之時(shí)螺捐,為系統(tǒng)架構(gòu)設(shè)計(jì)做出了非常多重要的決策颠悬。他在為L(zhǎng)iveJournal增加基礎(chǔ)設(shè)施時(shí),常常會(huì)詢問(wèn)自己定血,這個(gè)新增的基礎(chǔ)架構(gòu)是否必須要和LiveJournal綁定在一起赔癌,這使他充分重視解決依賴關(guān)系。所以澜沟,他的分布式高速緩存系統(tǒng)Memcached等都是抽象的灾票,這些決定使他的系統(tǒng)沒(méi)有產(chǎn)生復(fù)雜的依賴關(guān)系,具有很高的擴(kuò)展性和可維護(hù)性茫虽。
美國(guó)建筑師路易·康在《靜謐與光明》中曾經(jīng)提到:
一座偉大的建筑物刊苍,按我的看法,必須從無(wú)可量度的狀況開(kāi)始濒析,當(dāng)它被設(shè)計(jì)著的時(shí)候又必須通過(guò)所有可以量度的手段正什,最后又一定是無(wú)可量度的。建筑房屋的唯一途徑悼枢,也就是使建筑物呈現(xiàn)眼前的唯一途徑埠忘,是通過(guò)可量度的手段脾拆。你必須服從自然法則馒索。一定量的磚,施工方法以及工程技術(shù)均在必須之列名船。到最后绰上,建筑物成了生活的一部分,它發(fā)生出不可量度的氣質(zhì)渠驼,煥發(fā)出活生生的精神蜈块。
我們也可以用這段話,來(lái)描述一幢具有優(yōu)秀的架構(gòu)的軟件“摩天大樓”。
想全面系統(tǒng)地了解計(jì)算機(jī)軟件架構(gòu)的知識(shí)百揭,還可以參考《移動(dòng)開(kāi)發(fā)架構(gòu)設(shè)計(jì)實(shí)戰(zhàn)》爽哎,掌握架構(gòu)體系知識(shí)。