摘要:前端單元測(cè)試,推薦淘寶開(kāi)源的工具,簡(jiǎn)單易用,支持眾多測(cè)試框架,也支持調(diào)試。這些也是設(shè)計(jì)前端框架時(shí)需要權(quán)衡的重要方面。最后,其實(shí)大型網(wǎng)站不一定要設(shè)計(jì)自己的前端框架,完全可以選用現(xiàn)有的框架。
有人在知乎上提問(wèn)“如何設(shè)計(jì)大型網(wǎng)站的前端 JavaScript 框架”,有不少回答,其中得贊較多的兩個(gè)回答如下:
相對(duì)大型的項(xiàng)目在前端 JS 方面有幾個(gè)需要達(dá)成的目標(biāo):
1. 代碼邏輯分層
2. 便于多人協(xié)作開(kāi)發(fā)
3. 各部分代碼模塊化,可以按需加載
4. 保持全局變量的清潔
5. 可進(jìn)行單元測(cè)試
馬驍
簡(jiǎn)單說(shuō)下,首先是模塊化開(kāi)發(fā),方便多人合作,減少代碼沖突,多使用繼承接口思路來(lái)取代if else,另外做一些監(jiān)控能定位模塊運(yùn)行狀態(tài),必要時(shí)盡量考慮one-page模式,減少對(duì)服務(wù)器的請(qǐng)求同時(shí)也能提高頁(yè)面加載速度(可參考bigPipe或者bigRender模式)。
雷雨
這兩個(gè)答案中提到的模塊化、代碼邏輯分層、便于多人協(xié)作開(kāi)發(fā)、保持全局變量清潔、使用繼承接口思路、可進(jìn)行單元測(cè)試等要點(diǎn),其實(shí)適用于所有大型項(xiàng)目。
模塊的按需加載,常用的解決方案是 require.js 和 sea.js。兩者的簡(jiǎn)單對(duì)比可以看《RequireJS與SeaJS模塊化加載示例》。此外,可以參考《淺談 JavaScript 模塊化編程》和《淺談模塊化加載的實(shí)現(xiàn)原理》,了解模塊化加載的原理。
前端單元測(cè)試,推薦淘寶開(kāi)源的totoro工具,簡(jiǎn)單易用,支持眾多測(cè)試框架,也支持調(diào)試。
雷雨提到“必要時(shí)盡量考慮 one-page 模式,減少對(duì)服務(wù)器的請(qǐng)求同時(shí)也能提高頁(yè)面加載速度”。其實(shí) one-page 模式并不適合所有站點(diǎn),特別是內(nèi)容為主的站點(diǎn)并不適合 one-page 模式,詳見(jiàn) 《客戶(hù)端JavaScript框架的五大痛點(diǎn)》。
除此以外,大小和依賴(lài)也是設(shè)計(jì)框架需要考慮的方面。通常而言,尺寸越小、依賴(lài)越少,框架的性能就越好。而尺寸越大、依賴(lài)越多,框架的特性就越多,兼容性也越好。同時(shí),尺寸較小的框架往往更容易集成到現(xiàn)有的項(xiàng)目,而大型框架為你做更多的事,但是不容易和其他項(xiàng)目配合。這些也是設(shè)計(jì)前端框架時(shí)需要權(quán)衡的重要方面。
還要向大家推薦司徒正美的《JavaScript框架設(shè)計(jì)》,這是國(guó)內(nèi)第一本講述前端框架架構(gòu)的書(shū)。
最后,其實(shí)大型網(wǎng)站不一定要設(shè)計(jì)自己的前端框架,完全可以選用現(xiàn)有的框架。;-)
編撰 SegmentFault
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/78100.html
摘要:工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關(guān)資源匯總 學(xué)習(xí)指導(dǎo) 精華文章 Web前端的路該怎么走?:文章超長(zhǎng),但是干貨超級(jí)多,值得反復(fù)精讀! 聽(tīng)說(shuō)2017你想寫(xiě)前端?:適合于已經(jīng)度過(guò)了小白階...
摘要:工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關(guān)資源匯總 學(xué)習(xí)指導(dǎo) 精華文章 Web前端的路該怎么走?:文章超長(zhǎng),但是干貨超級(jí)多,值得反復(fù)精讀! 聽(tīng)說(shuō)2017你想寫(xiě)前端?:適合于已經(jīng)度過(guò)了小白階...
摘要:工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 工作原因,最近一年斷斷續(xù)續(xù)寫(xiě)了一點(diǎn)前端代碼,收集整理了一些資料,和大家共享。 Github版本:Front-End Resource Collection 前端相關(guān)資源匯總 學(xué)習(xí)指導(dǎo) 精華文章 Web前端的路該怎么走?:文章超長(zhǎng),但是干貨超級(jí)多,值得反復(fù)精讀! 聽(tīng)說(shuō)2017你想寫(xiě)前端?:適合于已經(jīng)度過(guò)了小白階...
摘要:由于系統(tǒng)變得越來(lái)越復(fù)雜,人們提出了稱(chēng)為預(yù)處理器和后處理器的工具來(lái)管理復(fù)雜性。后處理器在由預(yù)處理器手寫(xiě)或編譯后對(duì)應(yīng)用更改。我之前建議的文章,,也涵蓋了預(yù)處理器相關(guān)的知識(shí)。 譯者:前端小智 原文:medium.freecodecamp.org/from-zero-t… medium.freecodecamp.org/from-zero-t… 我記得我剛開(kāi)始學(xué)習(xí)前端開(kāi)發(fā)的時(shí)候。我看到了很多文章及...
摘要:可能很多人和我一樣首次聽(tīng)到前端架構(gòu)這個(gè)詞第一反應(yīng)是前端還有架構(gòu)這一說(shuō)呢在后端開(kāi)發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵因此架構(gòu)師備受重視早在開(kāi)發(fā)工作啟動(dòng)之前他們就被邀請(qǐng)加入到項(xiàng)目中而且他們會(huì)跟客戶(hù)討論即將建成的平臺(tái)的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類(lèi)型 可能很多人和我一樣, 首次聽(tīng)到前端架構(gòu)這個(gè)詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說(shuō)呢? 在后端開(kāi)發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴(kuò)展性非常關(guān)鍵, 因此架構(gòu)師備...
閱讀 1507·2023-04-25 17:18
閱讀 1915·2021-10-27 14:18
閱讀 2158·2021-09-09 09:33
閱讀 1864·2019-08-30 15:55
閱讀 2037·2019-08-30 15:53
閱讀 3467·2019-08-29 16:17
閱讀 3451·2019-08-26 13:57
閱讀 1753·2019-08-26 13:46