久久久91麻豆精品国产一区 _一道本成人在线_91精品麻豆日日躁夜夜躁_国产拍揄自揄精品视频麻豆

消息通知

竟然還有讓沒有后臺的網(wǎng)站正常運(yùn)行的要求

背景

前幾天被派去處響應(yīng)客戶提出的需求。

客戶需求

之前公司給客戶開發(fā)部署了一套Web應(yīng)用,是Vue+Node.js的架構(gòu)。

現(xiàn)在客戶要求把這個(gè)Web應(yīng)用放到一臺筆記本里,要求web應(yīng)用的網(wǎng)頁要能正常顯示。

小編快速思考了一下,在筆記本上搭建好Vue和Node.js的環(huán)境,將前端、后端源代碼copy到筆記本上跑起來,把數(shù)據(jù)庫一遷移不就完事了嘛,小意思。

然而還是太年輕,把問題想得太理想。

溝通后才發(fā)現(xiàn)這個(gè)系統(tǒng)的后臺開發(fā)數(shù)據(jù)庫是分布式數(shù)據(jù)庫,由幾十臺服務(wù)器組成,這...這還怎么玩啊!

首先,要把這個(gè)分布式數(shù)據(jù)庫塞到筆記本里顯然不現(xiàn)實(shí),同時(shí)了解到Web應(yīng)用中的一些統(tǒng)計(jì)功能需要進(jìn)行全表查詢計(jì)算,即使我能把數(shù)據(jù)庫塞進(jìn)筆記本,幾個(gè)TB的數(shù)據(jù)庫表我也塞不進(jìn)去啊!其次客戶不允許把全量數(shù)據(jù)庫數(shù)據(jù)導(dǎo)出到筆記本,簡直要哭了!

解決方案

這種情況,看來數(shù)據(jù)庫是不用想了,小編趕緊思考別的解決方案,要不然Leader所謂的小問題都解決不了,豈不是太(fan)給(wan)公(bu)司(bao)丟臉了。小編想起Leader意味深長的笑,心里早已MMP了。

既然數(shù)據(jù)庫不能遷移到筆記本,那前端所需要的數(shù)據(jù)該怎么獲取呢?

我們先來回顧web的整個(gè)交互流程。下圖是目前客戶整個(gè)web應(yīng)用示意圖:

簡單來說,一個(gè)動(dòng)態(tài)網(wǎng)頁的獲取分以下幾步:

拉取靜態(tài)頁面

當(dāng)用戶在瀏覽器輸入U(xiǎn)RL回車后,通過Http的Get請求向Http服務(wù)器請求拉取靜態(tài)html頁面以及相關(guān)的CSS、JS等資源文件

瀏覽器解析階段

瀏覽器解析html頁面,并執(zhí)行相應(yīng)的JS代碼,JS代碼中會(huì)包含相應(yīng)的異步數(shù)據(jù)請求。

異步數(shù)據(jù)請求

瀏覽器通過異步數(shù)據(jù)請求向Node服務(wù)器請求數(shù)據(jù)

后端服務(wù)器響應(yīng)

Node服務(wù)器根據(jù)的請求,執(zhí)行相應(yīng)功能的代碼,例如,如果是拉取商品列表的數(shù)據(jù)請求,Node服務(wù)器會(huì)向數(shù)據(jù)庫查詢商品列表信息,將組織好的數(shù)據(jù)包裝成Json等格式作為請求的響應(yīng)返回給瀏覽器

異步刷新頁面

瀏覽器端JS代碼通過異步請求拿到異步請求返回的數(shù)據(jù),繼續(xù)執(zhí)行相關(guān)的數(shù)據(jù)組織處理的JS代碼,最終將數(shù)據(jù)異步更新到網(wǎng)頁上。

網(wǎng)站后臺程序開發(fā)

結(jié)束

至此,一個(gè)簡單的瀏覽器請求背后的流程到此結(jié)束,用戶通過輸入U(xiǎn)RL看到了想要看到的網(wǎng)頁的內(nèi)容。

經(jīng)過對背后流程的梳理,小編已經(jīng)明確問題出在數(shù)據(jù)庫上,并且既然數(shù)據(jù)庫不能訪問,相應(yīng)的,后端Node服務(wù)器的存在也沒有什么意義了。

事實(shí)上,對于前后臺分離的架構(gòu),若要保證網(wǎng)頁的正常訪問,只要能保證前端向后臺發(fā)起的數(shù)據(jù)請求,能夠返回一致的數(shù)據(jù)即可。

意思是,只要能夠保證前端請求,有正常的響應(yīng)(數(shù)據(jù))即可,不管是Node服務(wù)器對請求進(jìn)行響應(yīng),還是誰提供的響應(yīng)。

把后端想象成一個(gè)服務(wù)提供者,只要能提供服務(wù),任何的解決方案都是可行的。

于是小編腦中浮現(xiàn)了一個(gè)方案:

將現(xiàn)有系統(tǒng)中每個(gè)后臺請求的返回的結(jié)果數(shù)據(jù)都先保存成本地文件,同時(shí)重新開發(fā)后臺服務(wù)響應(yīng)接口,對于指定的請求返回之前相同接口請求保存的本地文件數(shù)據(jù),整個(gè)架構(gòu)變成下圖的樣子:

這樣既達(dá)到了能夠返回實(shí)際的數(shù)據(jù),同時(shí)前端也沒有任何感知和影響。

實(shí)際上這樣還是不能完全解決問題。例如,如果有一下需要修改、寫入數(shù)據(jù)庫的操作,這種方式就沒有效了。

畢竟我們只是偽裝能一個(gè)能夠正常響應(yīng)查詢的假后端,并沒有實(shí)際的數(shù)據(jù)庫。

不過好在客戶說只要滿足首頁和幾個(gè)查詢按鈕的正常展示即可。

接下來的主要工作就是梳理現(xiàn)有接口,把實(shí)際數(shù)據(jù)請求接口返回的數(shù)據(jù)都保存下來,并且記錄它們之間的對應(yīng)關(guān)系。然后就是重新開發(fā)后端服務(wù),將前端過來的請求,返回之前保存的對應(yīng)的文件中的數(shù)據(jù)即可。

舉個(gè)例子,之前某個(gè)前端請求對應(yīng)的后端處理代碼可能是這樣的:

string get_goods_list(request)

{

  //獲取request中請求參數(shù)

  ...

  //查詢數(shù)據(jù)庫

  ...

  //組織數(shù)據(jù)格式并返回

  return json_respone;

}

而重新開發(fā)的后端處理代碼就變成這樣了:

string get_goods_list(request)

{

  //讀取保存到本地的數(shù)據(jù)請求返回的數(shù)據(jù)

  ...

  //直接將數(shù)據(jù)返回給前端

  return json_respone;

}

特別的簡單粗暴,但是確實(shí)有效,當(dāng)然事情也不可能如此順利,由于這個(gè)系統(tǒng)當(dāng)時(shí)的研發(fā)人員已經(jīng)離職,小編只能靠留存的簡單項(xiàng)目部署說明,外加一點(diǎn)點(diǎn)摸索,在解決無數(shù)次error后,客戶終于在一臺筆記本上看到了預(yù)期的頁面效果。

直到臨走時(shí)小編也沒想明白,既然只是要求幾個(gè)按鈕的功能能正常展示頁面,為何不截個(gè)圖或者錄個(gè)視頻放到筆記本里?不過小編還是忍住了沒問,因?yàn)閱柫擞帜苋绾危?/p>

后記

這次事件小編明白了兩個(gè)道理:一是客戶的需求真的可以天馬行空,二是解決問題的能力是建立在對原理和現(xiàn)狀有清晰的基礎(chǔ)上的,只有掌握技術(shù)背后的原理,才能在應(yīng)用技術(shù)時(shí)游刃有余,有能力應(yīng)對各種需求解決各種問題,當(dāng)然這也是一名程序員應(yīng)該具備的素質(zhì)。

看來指望客戶不提“無理”需求是不可能了,能夠做到就是提高自身能力水平

久久久91麻豆精品国产一区 _一道本成人在线_91精品麻豆日日躁夜夜躁_国产拍揄自揄精品视频麻豆
成人欧美一区二区三区在线播放| 亚洲综合在线视频| 亚洲美女精品一区| 精品一区二区av| 欧美日韩精品一区视频| 亚洲国产精品传媒在线观看| 日韩精品亚洲一区| 日本乱人伦aⅴ精品| 中文字幕乱码日本亚洲一区二区| 日日夜夜精品免费视频| 一道本成人在线| 国产日本一区二区| 国产中文一区二区三区| 欧美一区二区精美| 亚洲狠狠爱一区二区三区| 成人免费看黄yyy456| 久久丝袜美腿综合| 久久av老司机精品网站导航| 欧美美女一区二区三区| 樱桃视频在线观看一区| 91在线精品一区二区| 国产色综合久久| 国内久久精品视频| 精品久久久久久久久久久久包黑料| 亚洲电影在线播放| 欧美日韩视频在线第一区| 中文字幕一区av| av一区二区三区黑人| 亚洲国产岛国毛片在线| 国产成人av资源| 亚洲国产成人自拍| 99久久久国产精品| 亚洲精品综合在线| 91麻豆免费看| 精品一区二区三区不卡 | 欧美一级黄色片| 婷婷成人综合网| 欧美精品成人一区二区三区四区| 亚洲二区视频在线| 制服丝袜亚洲网站| 免费成人结看片| 久久综合视频网| 国产一区二区三区免费在线观看| 久久这里只有精品首页| 国产成人在线影院 | 午夜欧美在线一二页| 69av一区二区三区| 精品一区二区三区欧美| 国产视频在线观看一区二区三区| 99久久精品国产网站| 亚洲一区在线电影| 亚洲精品亚洲人成人网在线播放| 91福利视频在线| 免费看日韩a级影片| 国产蜜臀av在线一区二区三区| 不卡在线视频中文字幕| 亚洲高清不卡在线| 久久你懂得1024| 欧洲亚洲国产日韩| 麻豆精品久久久| 国产精品久久夜| 欧美妇女性影城| 成人h动漫精品| 香蕉成人啪国产精品视频综合网| 精品国产99国产精品| 91美女在线观看| 久久99久久99小草精品免视看| 国产精品二三区| 91精品国产福利| va亚洲va日韩不卡在线观看| 日本vs亚洲vs韩国一区三区 | 成人app软件下载大全免费| 亚洲激情男女视频| 精品欧美乱码久久久久久1区2区| 成人爽a毛片一区二区免费| 午夜激情久久久| 中文字幕高清不卡| 日韩一区二区电影在线| 一本大道久久a久久综合婷婷| 另类人妖一区二区av| 一区二区欧美在线观看| 国产亚洲自拍一区| 日韩欧美一区二区三区在线| 91原创在线视频| 国产精品自拍三区| 美女国产一区二区三区| 伊人色综合久久天天人手人婷| 国产亚洲欧美日韩俺去了| 91精品国产91综合久久蜜臀| 色欧美日韩亚洲| 成人app软件下载大全免费| 激情另类小说区图片区视频区| 亚洲午夜久久久久久久久久久 | 欧美丝袜自拍制服另类| jlzzjlzz欧美大全| 国内精品伊人久久久久影院对白| 亚洲h动漫在线| 一区二区三区在线高清| 亚洲欧美日韩精品久久久久| 国产午夜精品久久| 国产色综合久久| 久久精品一二三| 国产婷婷一区二区| 久久久三级国产网站| 欧美精品一区二区久久婷婷| 日韩精品最新网址| 欧美www视频| 26uuu久久综合| 久久久久久久久一| 国产欧美日产一区| 国产欧美日韩亚州综合 | 麻豆国产91在线播放| 日韩精品一区第一页| 日韩电影一区二区三区四区| 亚洲电影在线免费观看| 亚洲高清免费在线| 日本va欧美va欧美va精品| 蜜臀av性久久久久蜜臀av麻豆 | 日韩一区欧美二区| 日韩在线一区二区| 理论电影国产精品| 国产成人丝袜美腿| 99国内精品久久| 欧美午夜电影网| 这里是久久伊人| 亚洲精品一区二区三区在线观看| 久久久国产精品麻豆| 国产精品久久久久久久浪潮网站| 自拍偷拍亚洲欧美日韩| 亚洲国产精品久久不卡毛片| 日韩在线a电影| 国产激情视频一区二区在线观看 | 一区二区三区丝袜| 日一区二区三区| 国产高清视频一区| 在线观看一区不卡| 欧美一区二区日韩| 国产欧美日韩精品在线| 一区二区三区日韩在线观看| 日韩电影在线观看网站| 国产精一区二区三区| 一本到一区二区三区| 欧美电影免费观看完整版| 国产精品高潮呻吟| 日韩二区在线观看| 99久久精品国产精品久久| 欧美精品v日韩精品v韩国精品v| 久久精品亚洲国产奇米99| 亚洲综合精品久久| 国产原创一区二区三区| 色av一区二区| 国产婷婷色一区二区三区在线| 亚洲国产精品自拍| 成人av在线资源网站| 5月丁香婷婷综合| 中文字幕中文字幕一区二区| 卡一卡二国产精品| 欧美午夜精品一区二区蜜桃| 国产日韩欧美a| 奇米精品一区二区三区在线观看 | 天天综合网天天综合色| 99久久夜色精品国产网站| 日韩你懂的在线播放| 亚洲另类春色校园小说| 国产精品456| 日韩免费性生活视频播放| 亚洲一区二区综合| 99久久综合狠狠综合久久| 久久夜色精品一区| 奇米精品一区二区三区在线观看一 | 久久久久久久久97黄色工厂| 婷婷开心激情综合| 在线观看视频一区二区欧美日韩| 国产精品视频一二三| 国内久久婷婷综合| 欧美一区二区免费视频| 亚洲一区成人在线| 日本国产一区二区| 亚洲另类在线视频| 91色在线porny| 亚洲桃色在线一区| 成人午夜在线视频| 国产人伦精品一区二区| 国产美女在线精品| 久久亚洲一级片| 国产在线视频一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产欧美日韩亚州综合| 经典一区二区三区| 日韩精品在线网站| 麻豆国产一区二区| 精品福利在线导航| 国产一区日韩二区欧美三区| 精品国产乱子伦一区| 免费成人在线观看视频| 精品国产乱码久久久久久老虎 | 亚洲色大成网站www久久九九| 成人视屏免费看| 亚洲欧美一区二区三区国产精品| 91麻豆高清视频|