web重構(gòu)之路

以前網(wǎng)站開發(fā)存在的痛點(diǎn)

1.部署生產(chǎn)環(huán)境時(shí)間長

2.開發(fā)需要開虛擬機(jī)(asp.net必須運(yùn)行在window平臺)

3.陳舊的前端代碼不好維護(hù)

4.加載速度優(yōu)化(首屏渲染體驗(yàn))


以上的幾點(diǎn)“痛”,是ezbuy網(wǎng)站以前開發(fā)存在的幾個(gè)問題。網(wǎng)站在重構(gòu)的過程中,主要也就是解決這些問題做的一些改進(jìn)。

首先,?前端的確定的技術(shù)選型是webpack + react + redux,這也是行業(yè)很多公司采用的方案,就不在此做多余的技術(shù)優(yōu)勢說明。我們前端和后端的配合完全使用API文檔,JS代碼中請求api的代碼都根據(jù)api文檔自動(dòng)生成,調(diào)用api就只需要import對應(yīng)的service,生成代碼使用的工具tgen是ezbuy自己開發(fā)的生成工具。 前端能夠處理的問題盡量放在前端,比如頁面所有內(nèi)容的渲染,甚至是部分的SEO信息。存在的和業(yè)務(wù)相關(guān)的部分也由數(shù)據(jù)驅(qū)動(dòng)完成,也就脫離了以往asp.net的那一套模式(即razor模板開發(fā)),實(shí)現(xiàn)前后端分離的開發(fā)方式。

相關(guān)網(wǎng)站:

webpack

react

redux

tgen

技術(shù)選型和開發(fā)方式,使前端開發(fā)告別了原有的開發(fā)方式,新的頁面都使用react開發(fā),截止目前,前端70%左右的頁面已經(jīng)是react化的頁面,還有很多的頁面正在一步步改進(jìn)中,陳舊的代碼維護(hù)成本變得越來越低。另外,前端小組某某咖開發(fā)了一個(gè)chrome插件,可以實(shí)現(xiàn)開發(fā)時(shí)請求的靜態(tài)資源map使用本地文件,開發(fā)和維護(hù)react的頁面時(shí),僅需要開啟構(gòu)建的webpack + chrome插件就可以快速開發(fā)網(wǎng)站。

其次,以往網(wǎng)站是asp.net開發(fā),部署生產(chǎn)環(huán)境會(huì)有一個(gè)很長的過程,大概就是:


過程一般都是1個(gè)小時(shí)左右,緊急修改html或是文字,都需要把以上的流程重新走一遍, ezbuy搞活動(dòng)的時(shí)候,產(chǎn)品大大們經(jīng)常會(huì)說,某某某你那個(gè)banner或是文案什么的上線了沒有啊?boss等到促銷呢! 。。。以前的發(fā)布,等待就是那么漫長。不過現(xiàn)在好了,只要是我們r(jià)eact化的的頁面,發(fā)布只需要2min,對!就是這么短的時(shí)間。code測試通過并且合并到master,僅需要執(zhí)行命令make publish,1min打包完畢,然后,就是需要你確認(rèn)一下是否發(fā)布,確認(rèn)好了,30s內(nèi)就會(huì)部署到生產(chǎn)環(huán)境。是不是很快啦?

具體實(shí)現(xiàn)主要是兩個(gè)方面的優(yōu)化:

1. 部署到線上的網(wǎng)站有個(gè)動(dòng)態(tài)load靜態(tài)資源的機(jī)制

2. 靜態(tài)資源自動(dòng)部署到CDN

動(dòng)態(tài)load靜態(tài)資源,就是將靜態(tài)資源的map文件放在CDN上面且不做緩存,頁面中的js在每次加載頁面時(shí),會(huì)根據(jù)map加載對應(yīng)的靜態(tài)資源文件,map變化了,頁面的內(nèi)容也就會(huì)跟著變化,可以理解,更新一次map文件,就是一次部署。自動(dòng)部署靜態(tài)資源這個(gè)就很簡單了,github、gitlab都是支持webhook的,配置一下就可以實(shí)現(xiàn)。

最后,網(wǎng)站的加載速度也是很重要的,ebzuy前端的所有靜態(tài)資源都是放在cdn上,主要是亞馬遜和七牛,靜態(tài)資源的有效期設(shè)置時(shí)間也是比較長,用戶加載了一次, 下次就可以從緩存中拿,提高了頁面的加載速度。另外,頁面的首屏渲染問題,用戶訪問頁面,第一眼看到的內(nèi)容,不能加載太長時(shí)間,api請求會(huì)有個(gè)漫長的反應(yīng)時(shí)間,為了解決這個(gè)問題,我們會(huì)將首屏的api數(shù)據(jù)內(nèi)容交給后端來做請求,每次用戶訪問的頁面,首屏的數(shù)據(jù)都是跟著模板返回來的,js直接根據(jù)數(shù)據(jù)渲染,優(yōu)化了用戶首屏體驗(yàn)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 以前網(wǎng)站開發(fā)存在的痛點(diǎn) 1.部署生產(chǎn)環(huán)境時(shí)間長2.開發(fā)需要開虛擬機(jī)(asp.net必須運(yùn)行在window平臺)3....
    ezbuy研發(fā)閱讀 1,062評論 1 6
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,034評論 25 709
  • 小時(shí)候旅行就是出遠(yuǎn)門。慢慢長大就是一個(gè)城市呆夠了去另外一個(gè)城市。來到你的城市,走過你來時(shí)的路,看過你未看的風(fēng)景。 ...
    茜愛兔子牙閱讀 529評論 0 0
  • 這個(gè)換季的季節(jié),衣柜里的衣服也該換了,買買買,成了菇?jīng)鰝兘谧铑l繁的活動(dòng)。然而,在更新衣柜的時(shí)候,少盲目,入手的衣...
    迪兒的神奇魔力屋閱讀 904評論 0 3
  • 文/小純姐姐 一個(gè)7歲的孩子,連續(xù)幾天早晨醒來的第一句話是:“媽媽,我好想爸爸,爸爸怎么不在我身邊?”盡管她的爸爸...
    小純姐姐閱讀 454評論 4 1

友情鏈接更多精彩內(nèi)容