前端架構(gòu)發(fā)展史

最初,前端是沒(méi)有架構(gòu)的响牛,因?yàn)楣δ芎?jiǎn)單的代碼毫無(wú)架構(gòu)可言玷禽。通過(guò)一個(gè)簡(jiǎn)單的jQuery庫(kù)操作DOM就能完成的工作,無(wú)需復(fù)雜的設(shè)計(jì)模式和代碼管理機(jī)制呀打,也就不需要架構(gòu)來(lái)支持起應(yīng)用矢赁。

前端開(kāi)發(fā)的發(fā)展歷史分為以下幾個(gè)階段:

  • 古典時(shí)代:由后端渲染出前端HTML,用Table布局贬丛,用CSS進(jìn)行簡(jiǎn)單的輔助
  • 動(dòng)效時(shí)代:前端開(kāi)始編寫(xiě)一些簡(jiǎn)單的JavaScript腳本來(lái)做動(dòng)畫(huà)效果坯台,如輪播廣告
  • Ajax異步通信時(shí)代:2005年,Google在諸多Web應(yīng)用中使用了異步通信技術(shù)如 Google地圖瘫寝,開(kāi)啟了Web前端的一個(gè)新時(shí)代

一旦前端應(yīng)用需要從后端獲取數(shù)據(jù)蜒蕾,就意味著前端應(yīng)用在運(yùn)行時(shí)是動(dòng)態(tài)地渲染內(nèi)容的,這便是Model(模型)UI層解耦焕阿。jQuery能夠提供DOM操作方法和模型引擎等咪啡。這時(shí)的開(kāi)發(fā)人員需要做下面兩件事:

  • 動(dòng)態(tài)生成HTML。由后端返回前端所需要的HTML暮屡,再動(dòng)態(tài)替換頁(yè)面的DOM頁(yè)面撤摸。早期的典型架構(gòu)如jQuery Mobile,事先在前端寫(xiě)好模板與渲染邏輯,用戶的行為觸發(fā)后臺(tái)并返回對(duì)應(yīng)的數(shù)據(jù)來(lái)渲染文件
  • 模板分離准夷。由后端用API返回前端所需要的JSON數(shù)據(jù)钥飞,再由前端來(lái)計(jì)算生成這些HTML。前端的模板再使用HTML衫嵌,而是使用諸如 Mustache 這樣的模板引擎來(lái)渲染HTML

由于HTML的動(dòng)態(tài)生成读宙、模板的獨(dú)立與分離,前端應(yīng)用開(kāi)始變得復(fù)雜楔绞。后端的MVC架構(gòu)進(jìn)一步影響了前端開(kāi)發(fā)结闸,便誕生了一系列操起的MVC框架,如Backbone酒朵、Knockout等桦锄。與此同時(shí),在 Ryan Lienhart Dahl等人開(kāi)發(fā)了Node.js之后蔫耽,前端的軟件功能便不斷地改善:

  • 更好的構(gòu)建工具结耀。誕生了諸如 Grant 和 Gulp 等構(gòu)建工具
  • 包管理。產(chǎn)生了用于前端的包管理工具 Bower 和 Npm
  • 模塊管理匙铡。也出現(xiàn)了AMD图甜、Common.js 等不同的模塊管理方案

隨著單頁(yè)面應(yīng)用的流行,前后端分離框架也成為行業(yè)內(nèi)的標(biāo)準(zhǔn)實(shí)踐慰枕。由此具则,前端進(jìn)入了一個(gè)新的時(shí)代即纲,要考慮的內(nèi)容也越來(lái)越多:

  • API 管理具帮,采用了諸如 Swagger 的 API 管理工具,各式的 Mock Server 也成為標(biāo)準(zhǔn)實(shí)踐低斋。
  • 大前端蜂厅,由前端來(lái)開(kāi)發(fā)跨平臺(tái)移動(dòng)應(yīng)用框架,采用諸如 Ionic膊畴、React Native掘猿、Flutter 等框架。
  • 組件化唇跨,前端應(yīng)用從此由一個(gè)個(gè)細(xì)小的組件結(jié)合而成稠通,而不再是一個(gè)大的頁(yè)面組件。

系統(tǒng)變得越來(lái)越復(fù)雜买猖,架構(gòu)在前端的作用也變得越來(lái)越重要改橘。MVC 滿足不了開(kāi)發(fā)人員的需求,于是采用了組件化架構(gòu)玉控。而組件化 + MV 也無(wú)法應(yīng)對(duì)大型的前端應(yīng)用飞主,微前端便又出現(xiàn)在我們的面前,它解決了以下問(wèn)題:

  • 跨框架。在一個(gè)頁(yè)面上運(yùn)行碌识,可以同時(shí)使用多個(gè)前端框架碾篡。
  • 應(yīng)用拆分。將一個(gè)復(fù)雜的應(yīng)用拆解為多個(gè)微小的應(yīng)用筏餐,類(lèi)似于微服務(wù)开泽。
  • 遺留系統(tǒng)遷移。讓舊的前端框架胖烛,可以直接嵌入現(xiàn)有的應(yīng)用運(yùn)行眼姐。

復(fù)雜的前端應(yīng)用發(fā)展了這么久,也出現(xiàn)了一系列需要演進(jìn)的應(yīng)用:考慮重寫(xiě)佩番、遷移众旗、重構(gòu),等等趟畏。

本文由博客一文多發(fā)平臺(tái) OpenWrite 發(fā)布贡歧!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市赋秀,隨后出現(xiàn)的幾起案子利朵,更是在濱河造成了極大的恐慌,老刑警劉巖猎莲,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绍弟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡著洼,警方通過(guò)查閱死者的電腦和手機(jī)樟遣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)身笤,“玉大人豹悬,你說(shuō)我怎么就攤上這事∫狠” “怎么了瞻佛?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)娇钱。 經(jīng)常有香客問(wèn)我伤柄,道長(zhǎng),這世上最難降的妖魔是什么文搂? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任适刀,我火速辦了婚禮,結(jié)果婚禮上细疚,老公的妹妹穿的比我還像新娘蔗彤。我一直安慰自己川梅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布然遏。 她就那樣靜靜地躺著贫途,像睡著了一般。 火紅的嫁衣襯著肌膚如雪待侵。 梳的紋絲不亂的頭發(fā)上丢早,一...
    開(kāi)封第一講書(shū)人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音秧倾,去河邊找鬼怨酝。 笑死,一個(gè)胖子當(dāng)著我的面吹牛那先,可吹牛的內(nèi)容都是我干的农猬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼售淡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼斤葱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起揖闸,我...
    開(kāi)封第一講書(shū)人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤揍堕,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后汤纸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體衩茸,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年贮泞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了楞慈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡隙畜,死狀恐怖抖部,靈堂內(nèi)的尸體忽然破棺而出说贝,到底是詐尸還是另有隱情议惰,我是刑警寧澤,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布乡恕,位于F島的核電站言询,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏傲宜。R本人自食惡果不足惜运杭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望函卒。 院中可真熱鬧辆憔,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至腕巡,卻和暖如春玄坦,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背绘沉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工煎楣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人车伞。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓择懂,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親另玖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子休蟹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353