筆記
可擴(kuò)展性指系統(tǒng)為了應(yīng)對(duì)將來需求變化而提供的一種擴(kuò)展能力,當(dāng)有新的需求出現(xiàn)時(shí)就斤,系統(tǒng)不需要或者僅需要少量修改就可以支持悍募,無須整個(gè)系統(tǒng)重構(gòu)或者重建。
提升可擴(kuò)展性的方法:面向?qū)ο蠛驮O(shè)計(jì)模式洋机。
設(shè)計(jì)具備良好可擴(kuò)展性的系統(tǒng)坠宴,有兩個(gè)基本條件:正確預(yù)測(cè)變化、完美封裝變化绷旗。
軟件系統(tǒng)與硬件或者建筑相比喜鼓,有一個(gè)很大的差異:軟件系統(tǒng)在發(fā)布后還可以不斷地修改和演進(jìn)副砍,這就意味著不斷有新的需求需要實(shí)現(xiàn)。
如果每個(gè)點(diǎn)都考慮可擴(kuò)展性庄岖,架構(gòu)師會(huì)不堪重負(fù)豁翎,架構(gòu)設(shè)計(jì)也會(huì)異常龐大且最終無法落地。
“預(yù)測(cè)”這個(gè)詞隅忿,本身就暗示了不可能每次預(yù)測(cè)都是準(zhǔn)確的心剥。
預(yù)測(cè)變化的復(fù)雜性在于:
不能每個(gè)設(shè)計(jì)點(diǎn)都考慮可擴(kuò)展性。
不能完全不考慮可擴(kuò)展性背桐。
所有的預(yù)測(cè)都存在出錯(cuò)的可能性优烧。
對(duì)于架構(gòu)師來說,如何把握預(yù)測(cè)的程度和提升預(yù)測(cè)結(jié)果的準(zhǔn)確性链峭,是一件很復(fù)雜的事情畦娄,而且沒有通用的標(biāo)準(zhǔn)可以簡(jiǎn)單套上去,更多是靠自己的經(jīng)驗(yàn)弊仪、直覺害驹。
預(yù)測(cè)變化是一回事柠横,采取什么方案來應(yīng)對(duì)變化训枢,又是另外一個(gè)復(fù)雜的事情腮考。
第一種應(yīng)對(duì)變化的常見方案是將“變化”封裝在一個(gè)“變化層”,將不變的部分封裝在一個(gè)獨(dú)立的“穩(wěn)定層”曲横。
第二種常見的應(yīng)對(duì)變化的方案是提煉出一個(gè)“抽象層”和一個(gè)“實(shí)現(xiàn)層”喂柒。