摘要:前端單元測試,推薦淘寶開源的工具,簡單易用,支持眾多測試框架,也支持調(diào)試。這些也是設(shè)計前端框架時需要權(quán)衡的重要方面。最后,其實大型網(wǎng)站不一定要設(shè)計自己的前端框架,完全可以選用現(xiàn)有的框架。
有人在知乎上提問“如何設(shè)計大型網(wǎng)站的前端 JavaScript 框架”,有不少回答,其中得贊較多的兩個回答如下:
相對大型的項目在前端 JS 方面有幾個需要達成的目標(biāo):
1. 代碼邏輯分層
2. 便于多人協(xié)作開發(fā)
3. 各部分代碼模塊化,可以按需加載
4. 保持全局變量的清潔
5. 可進行單元測試
馬驍
簡單說下,首先是模塊化開發(fā),方便多人合作,減少代碼沖突,多使用繼承接口思路來取代if else,另外做一些監(jiān)控能定位模塊運行狀態(tài),必要時盡量考慮one-page模式,減少對服務(wù)器的請求同時也能提高頁面加載速度(可參考bigPipe或者bigRender模式)。
雷雨
這兩個答案中提到的模塊化、代碼邏輯分層、便于多人協(xié)作開發(fā)、保持全局變量清潔、使用繼承接口思路、可進行單元測試等要點,其實適用于所有大型項目。
模塊的按需加載,常用的解決方案是 require.js 和 sea.js。兩者的簡單對比可以看《RequireJS與SeaJS模塊化加載示例》。此外,可以參考《淺談 JavaScript 模塊化編程》和《淺談模塊化加載的實現(xiàn)原理》,了解模塊化加載的原理。
前端單元測試,推薦淘寶開源的totoro工具,簡單易用,支持眾多測試框架,也支持調(diào)試。
雷雨提到“必要時盡量考慮 one-page 模式,減少對服務(wù)器的請求同時也能提高頁面加載速度”。其實 one-page 模式并不適合所有站點,特別是內(nèi)容為主的站點并不適合 one-page 模式,詳見 《客戶端JavaScript框架的五大痛點》。
除此以外,大小和依賴也是設(shè)計框架需要考慮的方面。通常而言,尺寸越小、依賴越少,框架的性能就越好。而尺寸越大、依賴越多,框架的特性就越多,兼容性也越好。同時,尺寸較小的框架往往更容易集成到現(xiàn)有的項目,而大型框架為你做更多的事,但是不容易和其他項目配合。這些也是設(shè)計前端框架時需要權(quán)衡的重要方面。
還要向大家推薦司徒正美的《JavaScript框架設(shè)計》,這是國內(nèi)第一本講述前端框架架構(gòu)的書。
最后,其實大型網(wǎng)站不一定要設(shè)計自己的前端框架,完全可以選用現(xiàn)有的框架。;-)
編撰 SegmentFault
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78100.html
摘要:可能很多人和我一樣首次聽到前端架構(gòu)這個詞第一反應(yīng)是前端還有架構(gòu)這一說呢在后端開發(fā)領(lǐng)域系統(tǒng)規(guī)劃和可擴展性非常關(guān)鍵因此架構(gòu)師備受重視早在開發(fā)工作啟動之前他們就被邀請加入到項目中而且他們會跟客戶討論即將建成的平臺的架構(gòu)要求使用還什么技術(shù)棧內(nèi)容類型 可能很多人和我一樣, 首次聽到前端架構(gòu)這個詞, 第一反應(yīng)是: 前端還有架構(gòu)這一說呢? 在后端開發(fā)領(lǐng)域, 系統(tǒng)規(guī)劃和可擴展性非常關(guān)鍵, 因此架構(gòu)師備...
閱讀 1604·2023-04-25 17:18
閱讀 1945·2021-10-27 14:18
閱讀 2191·2021-09-09 09:33
閱讀 1889·2019-08-30 15:55
閱讀 2082·2019-08-30 15:53
閱讀 3495·2019-08-29 16:17
閱讀 3483·2019-08-26 13:57
閱讀 1788·2019-08-26 13:46