總結(jié)一下。
1 基本概念和目的
架構(gòu)設(shè)計(jì)的目的是為了解決系統(tǒng)復(fù)雜度帶來(lái)的問(wèn)題剧罩,并不是要面面俱到,不需要每個(gè)架構(gòu)都具備高性能座泳、高可用惠昔、高擴(kuò)展等特點(diǎn),而是要識(shí)別出實(shí)際業(yè)務(wù)實(shí)際情況的復(fù)雜點(diǎn)挑势,然后有有針對(duì)性地解決問(wèn)題镇防,即:有的放矢,而不是貪大求全潮饱。 在實(shí)際情況中来氧,不一定每個(gè)系統(tǒng)都要做架構(gòu)設(shè)計(jì),需要結(jié)合實(shí)際情況香拉。有時(shí)候最簡(jiǎn)單的設(shè)計(jì)開(kāi)發(fā)效率反而是最高的啦扬,架構(gòu)設(shè)計(jì)畢竟要投入時(shí)間和人力,這部分投入如果用來(lái)盡早編碼凫碌,項(xiàng)目也許會(huì)更快考传。
2 架構(gòu)設(shè)計(jì)復(fù)雜度來(lái)源
高性能
高可用
.這個(gè)java學(xué)習(xí)(q-u-n): 678-241-563 期待大家一起進(jìn)群交流討論,講實(shí)話還是一個(gè)非常適合學(xué)習(xí)的地方的证鸥。各種入門資料啊僚楞,進(jìn)階資料啊,框架資料啊 等等
可擴(kuò)展性
低成本枉层、安全泉褐、規(guī)模
3 架構(gòu)設(shè)計(jì)三原則
合適原則
GFS為何在Google誕生,而不是在Microsoft誕生鸟蜡,其中Google有那么龐大的數(shù)據(jù)是一個(gè)主要因素膜赃,而不是因?yàn)镚oogle的工程師比Microsoft的工程師更加聰明。
真正優(yōu)秀的架構(gòu)都是企業(yè)在當(dāng)前人力揉忘、條件跳座、業(yè)務(wù)等各方面約束條件下設(shè)計(jì)出來(lái)的,能夠合理地將資源整合一起并發(fā)揮出最大功效泣矛,并且能迅速落地疲眷。這也是很多BAT出來(lái)的架構(gòu)師到了小公司或者創(chuàng)業(yè)團(tuán)隊(duì)反而做不出成績(jī)的原因,因?yàn)闆](méi)有大公司的平臺(tái)您朽、資源狂丝、積累,只是生搬硬套大公司的做法,失敗的效率非常高几颜。
簡(jiǎn)單原則
無(wú)論是結(jié)構(gòu)的復(fù)雜性還是邏輯的復(fù)雜性倍试,都會(huì)存在各種問(wèn)題,所以架構(gòu)設(shè)計(jì)時(shí)如果簡(jiǎn)單方案和復(fù)雜的方案都可以滿足需求蛋哭,最好選擇簡(jiǎn)單的方案县习。《UNIX編程藝術(shù)》總結(jié)的KISS(Keep It Simple,Stupid!)原則一樣適用于架構(gòu)設(shè)計(jì)谆趾。
演化原則
對(duì)于軟件系統(tǒng)來(lái)說(shuō)躁愿,變化才是主題。軟件架構(gòu)需要根據(jù)業(yè)務(wù)的發(fā)展而不斷變化棺妓。 如果沒(méi)有把握“軟件架構(gòu)需要根據(jù)業(yè)務(wù)發(fā)展不斷變化”這個(gè)本質(zhì)攘已,在做架構(gòu)設(shè)計(jì)的時(shí)候就很容易陷入一個(gè)誤區(qū):試圖一步到位設(shè)計(jì)一個(gè)軟件架構(gòu),期望不管業(yè)務(wù)如何變化怜跑,架構(gòu)都穩(wěn)如磐石样勃。
為了實(shí)現(xiàn)這樣的目標(biāo),要么照搬業(yè)界大公司公開(kāi)發(fā)表的方案性芬;要么投入龐大的資源和時(shí)間來(lái)做各種各樣的預(yù)測(cè)峡眶、分析、設(shè)計(jì)植锉。無(wú)論哪種做法辫樱,后果都很明顯:投入巨大,落地遙遙無(wú)期俊庇。更讓人沮喪的是狮暑,就算跌跌撞撞拼死拼活終于落地,卻發(fā)現(xiàn)很多預(yù)測(cè)和分析都是不靠譜的辉饱。
實(shí)踐中搬男,架構(gòu)師要提醒自己不要貪大求全,遵循演化優(yōu)于一步到位的原則彭沼,因?yàn)闃I(yè)務(wù)的發(fā)展和變化總是很快的缔逛,**無(wú)論多牛的團(tuán)隊(duì),都不可能完美預(yù)測(cè)所有的業(yè)務(wù)發(fā)展和變化路徑姓惑。**實(shí)踐中可以參考如下建議:
首先褐奴,設(shè)計(jì)出來(lái)的架構(gòu)要滿足當(dāng)時(shí)的業(yè)務(wù)需要。
其次于毙,架構(gòu)要不斷地在實(shí)際應(yīng)用過(guò)程中迭代敦冬,保留優(yōu)秀的設(shè)計(jì),修復(fù)有缺陷的設(shè)計(jì)望众,改正錯(cuò)誤的設(shè)計(jì)匪补,去掉無(wú)用的設(shè)計(jì)伞辛,使得架構(gòu)逐漸完善烂翰。
第三夯缺,當(dāng)業(yè)務(wù)發(fā)生變化時(shí),架構(gòu)要擴(kuò)展甘耿、重構(gòu)踊兜,甚至重寫;代碼也許會(huì)重寫佳恬,但有價(jià)值的經(jīng)驗(yàn)捏境、教訓(xùn)、邏輯毁葱、設(shè)計(jì)等卻可以在新架構(gòu)中延續(xù)垫言。
4 架構(gòu)設(shè)計(jì)的流程