架構(gòu)設(shè)計(jì)三原則

第68篇

極客時(shí)間《從0開(kāi)始學(xué)架構(gòu)》課程筆記耿眉。

編程的本質(zhì)是『確定性』鸣剪,同樣一段代碼西傀,在任何時(shí)候執(zhí)行,結(jié)果應(yīng)該是確定的娘锁,有bug也是確定的。
而架構(gòu)設(shè)計(jì)的本質(zhì)是『不確定性』镊屎,同樣的一個(gè)系統(tǒng)缝驳,不同公司不同架構(gòu)師做出的設(shè)計(jì)差異可能很大用狱,但都能正常運(yùn)轉(zhuǎn)夏伊。
架構(gòu)設(shè)計(jì)更多的是面對(duì)多種可能性時(shí)進(jìn)行選擇溺忧。
架構(gòu)設(shè)計(jì)領(lǐng)域沒(méi)有通用規(guī)范祟滴,更多的是依賴經(jīng)驗(yàn)和直覺(jué)踱启。
但有3個(gè)共性原則隱含其中埠偿,這就是:合適原則、簡(jiǎn)單原則抖剿、演化原則识窿。

合適原則:『合適優(yōu)于業(yè)界領(lǐng)先』

  • 是否『領(lǐng)先』缩宜,是否『億級(jí)』都不重要锻煌,腳踏實(shí)地的實(shí)現(xiàn)架構(gòu)是最重要的
  • 有多少人干多少活宋梧,十個(gè)人團(tuán)隊(duì)想做幾十人才能完成的事情捂龄,失敗機(jī)率太大
  • 領(lǐng)先的方案不是拍腦袋靈機(jī)一動(dòng)得來(lái)的跺讯,而是經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展逐步完善的
  • 業(yè)界領(lǐng)先的方案都是業(yè)務(wù)發(fā)展到一定階段才催生出來(lái)的,不是一蹴而就的

真正優(yōu)秀的架構(gòu)都是在企業(yè)當(dāng)前人力愈污、條件暂雹、業(yè)務(wù)等各種約束下設(shè)計(jì)出來(lái)的杭跪,能夠合理地將資源整合在一起并發(fā)揮出最大功效,并且能夠快速落地姑廉。

簡(jiǎn)單原則:『簡(jiǎn)單優(yōu)于復(fù)雜』

  • 技術(shù)越來(lái)越精細(xì)和復(fù)雜桥言,導(dǎo)致架構(gòu)設(shè)計(jì)時(shí)也想把架構(gòu)做精美、做復(fù)雜扔涧,以便體現(xiàn)技術(shù)實(shí)力
  • 團(tuán)隊(duì)壓力也會(huì)促使架構(gòu)走向復(fù)雜,因?yàn)樵u(píng)價(jià)方案水平高低時(shí)卤档,復(fù)雜性是重要參考指標(biāo)
  • 『復(fù)雜』在軟件領(lǐng)域劝枣,代表的不是領(lǐng)先或者先進(jìn)溪胶,而是『?jiǎn)栴}』
  • 軟件領(lǐng)域的復(fù)雜性有兩個(gè):結(jié)構(gòu)的復(fù)雜性哗脖、邏輯的復(fù)雜性
  • 結(jié)構(gòu)復(fù)雜的特點(diǎn)是組件數(shù)量多才避、組件之間的關(guān)系復(fù)雜;因而可能導(dǎo)致:組件故障率高楞遏、一個(gè)組件改動(dòng)影響關(guān)聯(lián)的所有組件、定位問(wèn)題更加困難。
  • 邏輯復(fù)雜的特點(diǎn)是單個(gè)組件承擔(dān)了太多功能珊皿、采用了復(fù)雜算法;因而導(dǎo)致難以實(shí)現(xiàn)、難以修改抄淑、問(wèn)題無(wú)法快速解決郑原。
  • 如果簡(jiǎn)單方案和復(fù)雜方案都可以滿足要求,架構(gòu)設(shè)計(jì)應(yīng)選擇簡(jiǎn)單方案

《UNIX 編程藝術(shù)》總結(jié)的 KISS(Keep It Simple, Stupid!)原則一樣適應(yīng)于架構(gòu)設(shè)計(jì)犯犁。

演化原則:『演化優(yōu)于一步到位』

  • 軟件架構(gòu)與建筑架構(gòu)在定義和理解上有相似性属愤,但存在本質(zhì)差異:軟件需要不斷變化
  • 架構(gòu)設(shè)計(jì)的誤區(qū):一步到位的設(shè)計(jì)一個(gè)軟件架構(gòu),期望不管業(yè)務(wù)如何變化都能適應(yīng)
  • 軟件架構(gòu)設(shè)計(jì)更類似于『設(shè)計(jì)』一個(gè)生物:通過(guò)演化讓生物適應(yīng)環(huán)境酸役,并逐步變得強(qiáng)大
  • 明確當(dāng)前業(yè)務(wù)特點(diǎn)和主要問(wèn)題才是設(shè)計(jì)的根本住诸,不符合業(yè)務(wù)的架構(gòu)再領(lǐng)先也沒(méi)用

架構(gòu)師在進(jìn)行架構(gòu)設(shè)計(jì)時(shí)需要牢記這個(gè)原則,時(shí)刻提醒自己不要貪大求全簇捍,或者盲目照搬大公司的做法只壳。

總結(jié)

合適原則>簡(jiǎn)單原則>演化原則俏拱。第一原則:合適原則暑塑,優(yōu)先滿足現(xiàn)有業(yè)務(wù)需求;第二原則:簡(jiǎn)單原則锅必,選擇簡(jiǎn)單方案快速落地驗(yàn)證事格;第三原則:演化原則,適當(dāng)預(yù)測(cè)業(yè)務(wù)發(fā)展搞隐,在問(wèn)題出現(xiàn)時(shí)演進(jìn)驹愚。三個(gè)原則是一體的,相輔相成劣纲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末逢捺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子癞季,更是在濱河造成了極大的恐慌劫瞳,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绷柒,死亡現(xiàn)場(chǎng)離奇詭異志于,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)废睦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門伺绽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人嗜湃,你說(shuō)我怎么就攤上這事奈应。” “怎么了购披?”我有些...
    開(kāi)封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵杖挣,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我今瀑,道長(zhǎng)程梦,這世上最難降的妖魔是什么点把? 我笑而不...
    開(kāi)封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮屿附,結(jié)果婚禮上郎逃,老公的妹妹穿的比我還像新娘。我一直安慰自己挺份,他們只是感情好褒翰,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著匀泊,像睡著了一般优训。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上各聘,一...
    開(kāi)封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天揣非,我揣著相機(jī)與錄音,去河邊找鬼躲因。 笑死早敬,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的大脉。 我是一名探鬼主播搞监,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼镰矿!你這毒婦竟也來(lái)了琐驴?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秤标,失蹤者是張志新(化名)和其女友劉穎绝淡,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛杨,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡够委,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了怖现。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茁帽。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖屈嗤,靈堂內(nèi)的尸體忽然破棺而出潘拨,到底是詐尸還是另有隱情,我是刑警寧澤饶号,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布铁追,位于F島的核電站,受9級(jí)特大地震影響茫船,放射性物質(zhì)發(fā)生泄漏琅束。R本人自食惡果不足惜扭屁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望涩禀。 院中可真熱鬧料滥,春花似錦、人聲如沸艾船。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)屿岂。三九已至践宴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爷怀,已是汗流浹背阻肩。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留霉撵,地道東北人磺浙。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像徒坡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瘤缩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容