從零開(kāi)始學(xué)架構(gòu)

源起

軟件發(fā)展歷程

機(jī)器語(yǔ)言

直接使用二進(jìn)制碼 0 和 1 來(lái)表示機(jī)器可以識(shí)別的指令和數(shù)據(jù)
開(kāi)發(fā)難度大/可讀性差/可維護(hù)性差

匯編語(yǔ)言

用助記符代替機(jī)器指令的操作碼翁狐,用地址符號(hào)(Symbol)或標(biāo)號(hào)(Label)代替指令或操作數(shù)的地址
面向機(jī)器懈涛,不同CPU的匯編指令和結(jié)構(gòu)是不同的

高級(jí)語(yǔ)言

Fortran兼都、LISP、Cobol
機(jī)器無(wú)關(guān)性粪糙,關(guān)注具體的問(wèn)題和業(yè)務(wù)

結(jié)構(gòu)化程序設(shè)計(jì)

第一次軟件危機(jī)

軟件質(zhì)量低下菩混、項(xiàng)目無(wú)法如期完成、項(xiàng)目嚴(yán)重超支等蒸苇,因?yàn)檐浖鴮?dǎo)致的重大事故時(shí)有發(fā)生

結(jié)構(gòu)化程序設(shè)計(jì)

結(jié)構(gòu)化程序設(shè)計(jì)的主要特點(diǎn)是拋棄goto語(yǔ)句吮旅,采取“自頂向下溪烤、逐步細(xì)化、模塊化”的指導(dǎo)思想
本質(zhì)上還是一種面向過(guò)程的設(shè)計(jì)思想鸟辅,將軟件的復(fù)雜度控制在一定范圍

  • 1968氛什,Edsger Dijkstra發(fā)表《GOTO 有害論》論文
  • 第一個(gè)結(jié)構(gòu)化的程序語(yǔ)言 Pascal 也在此時(shí)誕生,并迅速流行起來(lái)

面向?qū)ο?/h3>

第二次軟件危機(jī)

軟件的“擴(kuò)展”變得非常復(fù)雜
根本原因還是在于軟件生產(chǎn)力遠(yuǎn)遠(yuǎn)跟不上硬件和業(yè)務(wù)的發(fā)展

面向?qū)ο?/h4>
  • 1967匪凉,Simula語(yǔ)言
  • 20世紀(jì)80年代以后,新的面向?qū)ο笳Z(yǔ)言捺檬,C++再层、Java、C#
  • 面向?qū)ο笾皇且环N新的軟件方法,不是銀彈

軟件架構(gòu)

問(wèn)題域

  • 系統(tǒng)規(guī)模龐大聂受,耦合嚴(yán)重蒿秦,邏輯復(fù)雜,開(kāi)發(fā)效率低蛋济,維護(hù)性差棍鳖,可擴(kuò)展性差

軟件架構(gòu)發(fā)展

“模塊”“對(duì)象”“組件”本質(zhì)上都是對(duì)達(dá)到一定規(guī)模的軟件進(jìn)行拆分,差別只是在于隨著 軟件的復(fù)雜度不斷增加碗旅,拆分的粒度越來(lái)越粗渡处,拆分的層次越來(lái)越高

  • 20世紀(jì)60年代第一次軟件危機(jī)引出了“結(jié)構(gòu)化編程”,創(chuàng)造了“模塊”概念
  • 20世紀(jì)80年代第二次軟件危機(jī)引出了“面向?qū)ο缶幊獭彼畋伲瑒?chuàng)造了“對(duì)象”概念
  • 20世紀(jì)90年代医瘫,“軟件架構(gòu)”開(kāi)始流行,創(chuàng)造了“組件”概念

架構(gòu)基礎(chǔ)

基本概念

系統(tǒng)與子系統(tǒng)

  • 系統(tǒng):泛指由一群由關(guān)聯(lián)的個(gè)體組成旧困,根據(jù)某種規(guī)則運(yùn)作醇份,能完成個(gè)別元件不能單獨(dú)完成的工作的群體
  • 子系統(tǒng):由一群有關(guān)聯(lián)的個(gè)體所組成的系統(tǒng),多半是更大系統(tǒng)中的一部分

軟件模塊與組件

  • 模塊:一套一只而互相緊密關(guān)聯(lián)的軟件組織吼具,程序+數(shù)據(jù)結(jié)構(gòu)
  • 組件:自包含的僚纷、可編程的、可重用的拗盒、與語(yǔ)言無(wú)關(guān)的軟件單元畔濒,可用于組裝應(yīng)用程序

模塊和組件都是系統(tǒng)的組成部分,從不同的角度拆分系統(tǒng)

  • “模塊”從邏輯的角度來(lái)拆分系統(tǒng)锣咒;“組件”從物理的角度來(lái)拆分系統(tǒng)
  • 劃分模塊的主要目的是職責(zé)分離;劃分組件的主要目的是單元復(fù)用

軟件框架與架構(gòu)

  • 軟件框架: 通常指的是為了實(shí)現(xiàn)某個(gè)業(yè)界標(biāo)準(zhǔn)或完成特定基本任務(wù)的軟件組件規(guī)范侵状,也指為了實(shí)現(xiàn)某個(gè)軟件組件規(guī)范時(shí),提供規(guī)范所要求之基礎(chǔ)功能的軟件產(chǎn)品
  • 軟件架構(gòu):軟件系統(tǒng)的頂層結(jié)構(gòu)

架構(gòu)設(shè)計(jì)目的

設(shè)計(jì)誤區(qū)

  • 為架構(gòu)設(shè)計(jì)而設(shè)計(jì)毅整,一定要做架構(gòu)設(shè)計(jì)
  • 架構(gòu)設(shè)計(jì)盲目追求高性能趣兄、高可用、可擴(kuò)展

設(shè)計(jì)目的

解決軟件系統(tǒng)復(fù)雜度帶來(lái)的問(wèn)題

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末悼嫉,一起剝皮案震驚了整個(gè)濱河市艇潭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌戏蔑,老刑警劉巖蹋凝,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異总棵,居然都是意外死亡鳍寂,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門情龄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迄汛,“玉大人捍壤,你說(shuō)我怎么就攤上這事“鞍” “怎么了鹃觉?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)睹逃。 經(jīng)常有香客問(wèn)我盗扇,道長(zhǎng),這世上最難降的妖魔是什么沉填? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任疗隶,我火速辦了婚禮,結(jié)果婚禮上拜轨,老公的妹妹穿的比我還像新娘抽减。我一直安慰自己,他們只是感情好橄碾,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布卵沉。 她就那樣靜靜地躺著,像睡著了一般法牲。 火紅的嫁衣襯著肌膚如雪史汗。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天拒垃,我揣著相機(jī)與錄音停撞,去河邊找鬼。 笑死悼瓮,一個(gè)胖子當(dāng)著我的面吹牛戈毒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播横堡,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼埋市,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了命贴?” 一聲冷哼從身側(cè)響起道宅,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胸蛛,沒(méi)想到半個(gè)月后污茵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葬项,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年泞当,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片玷室。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡零蓉,死狀恐怖笤受,靈堂內(nèi)的尸體忽然破棺而出穷缤,到底是詐尸還是另有隱情敌蜂,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布津肛,位于F島的核電站章喉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏身坐。R本人自食惡果不足惜秸脱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望部蛇。 院中可真熱鬧摊唇,春花似錦、人聲如沸涯鲁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)抹腿。三九已至岛请,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間警绩,已是汗流浹背崇败。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肩祥,地道東北人后室。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像混狠,于是被迫代替她去往敵國(guó)和親岸霹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 一檀蹋、生命周期 一個(gè)事物一旦出生松申,就必然會(huì)長(zhǎng)大,變異俯逾,一旦長(zhǎng)大贸桶,就面臨著衰老,接下來(lái)就是消亡了桌肴,這個(gè)過(guò)程就稱為一個(gè)事...
    ZyBlog閱讀 2,664評(píng)論 1 11
  • ??軟件架構(gòu)的出現(xiàn)是為了解決系統(tǒng)規(guī)模增加后出現(xiàn)了系統(tǒng)耦合嚴(yán)重皇筛,開(kāi)發(fā)效率低,邏輯復(fù)雜坠七,擴(kuò)展困難等問(wèn)題水醋。所以架構(gòu)設(shè)計(jì)是...
    良辰美景TT閱讀 3,303評(píng)論 0 29
  • 保持對(duì)文字的敏感旗笔,才能觸摸理性的溫度。剪報(bào)是一種很好的捷徑拄踪,但不能只剪不讀不寫(xiě)蝇恶,因?yàn)榧埳系脕?lái)終覺(jué)淺,絕知此事要躬行惶桐。
    半蓑煙雨任平生閱讀 205評(píng)論 0 1
  • Basic HQL and JPQL queries We apply selection to name the...
    ilaoke閱讀 1,188評(píng)論 1 1
  • 這幾天休峰會(huì)假姚糊,到圖書(shū)館借閱了這本書(shū)贿衍。書(shū)比較薄,大概三天就讀完了救恨。 這本書(shū)是加賀恭一郎探案系列的贸辈。感覺(jué)起來(lái)……也是...
    兔兔是淑女閱讀 577評(píng)論 0 0