產(chǎn)品前端架構 1-3

1.協(xié)作流程

WEB 系統(tǒng):部署在 WEB 服務器上阱缓,用于為若干 WEB 客戶端提供服務的系統(tǒng)

不同的 WEB 客戶端根據(jù)用戶的不同需求發(fā)送請求到 WEB 服務器上,WEB 系統(tǒng)根據(jù)需求返回相應的結(jié)果秸应,最后通過 WEB 客戶端展示給用戶

典型的? MVC 架構的 WEB 系統(tǒng)

結(jié)構:控制層(Controller) ? ? 數(shù)據(jù)層(Model) ? ? 視圖層(View)

數(shù)據(jù)層(Model)主要封裝了對數(shù)據(jù)的管理(如對數(shù)據(jù)的操作)

視圖層(View)主要展示了數(shù)據(jù)模型虑凛,提供人機交互功能

控制層(Controller)主要用來處理用戶的請求,委托數(shù)據(jù)層進行數(shù)據(jù)相關操作软啼,選擇合適的視圖返回給用戶


一個典型的 WEB 系統(tǒng)各層之間的協(xié)作流程

在 WEB 客戶端(瀏覽器)輸入地址桑谍,按下回車時,WEB客戶端就會發(fā)一個請求到服務器上祸挪,控制層(Controller)首先接收到 WEB 客戶端請求并進行解析锣披。通常這時候會請求數(shù)據(jù)層進行數(shù)據(jù)相關的操作,數(shù)據(jù)層(Model)根據(jù)需求篩選出相關數(shù)據(jù)模型贿条,返回給控制層雹仿。

控制層將收集到各種數(shù)據(jù)模型轉(zhuǎn)交給合適的視圖層進行模板整合,然后視圖層(View)將數(shù)據(jù)模型與模板整合之后生成頁面代碼整以,返回給控制層胧辽。

最后控制層(Controller)將結(jié)果返回給 WEB 客戶端進行展示。


角色定義:完成 WEB 系統(tǒng)需要的角色

視覺工程師:交互原型轉(zhuǎn)換為視覺稿

前端工程師:系統(tǒng)前端交互邏輯

后端工程師:后端開發(fā)技術公黑,為前端提供數(shù)據(jù)票顾、接口服務支持

前端工程師可切分為頁面工程師和前端工程師

頁面工程師更偏重與頁面架構的實現(xiàn),前端工程師更偏重與前端業(yè)務邏輯的實現(xiàn)


協(xié)作流程

拿到交互原型和視覺稿后帆调,前端與后端溝通輸出入口及同步數(shù)據(jù)規(guī)范與異步接口規(guī)范。

后端根據(jù)入口及同步數(shù)據(jù)規(guī)范配置豆同、實現(xiàn)控制層番刊,再根據(jù)異步接口規(guī)范實現(xiàn)接口。

前端根據(jù)入口及同步數(shù)據(jù)規(guī)范進行系統(tǒng)架構及模板實現(xiàn)影锈,再根據(jù)異步接口規(guī)范進行邏輯實現(xiàn)芹务。

最后前后端進行聯(lián)調(diào)與測試。

核心輸出

頁面入口規(guī)范:定義系統(tǒng)對外可訪問的入口鸭廷,入口配置信息

同步數(shù)據(jù)規(guī)范:定義系統(tǒng)需要預先給每個入口的模板文件的數(shù)據(jù)信息

異步接口規(guī)范:定義前后端異步數(shù)據(jù)交互的接口相關的信息


職責說明

頁面工程師

切圖枣抱,優(yōu)化圖片

頁面制作,優(yōu)化頁面效果與結(jié)構

完成簡單的前端業(yè)務邏輯開發(fā)

前端工程師

主導制定前后端分離規(guī)范

主導前后端聯(lián)調(diào)對接測試

系統(tǒng)前端設計架構辆床,滿足一定的功能性需求(性能佳晶,可擴展性)

完成系統(tǒng)前端的業(yè)務邏輯實現(xiàn),優(yōu)化實現(xiàn)邏輯

后端工程師

協(xié)助制定前后端分離規(guī)范

協(xié)助前后端聯(lián)調(diào)對接測試

完成后端系統(tǒng)架構及業(yè)務邏輯實現(xiàn)


2.接口設計

頁面入口規(guī)范:URL 地址跟模板與接口之間的約定

包含頁面基本信息(訪問地址讼载,頁面描述)轿秧,輸入?yún)?shù)(訪問地址上支持攜帶的參數(shù)說明),模板列表咨堤,接口列表

同步數(shù)據(jù)規(guī)范:模板和數(shù)據(jù)模型之間的約定

包含模板基本信息(模板文件菇篡,模板描述),預填數(shù)據(jù)(全局+頁面)一喘,注入接口說明

異步接口規(guī)范:接口與數(shù)據(jù)模型的約定

包含基本信息(請求方式驱还,接口地址),輸入數(shù)據(jù),輸出結(jié)果


規(guī)范應用:構建項目結(jié)構议蟆;模擬同步數(shù)據(jù)闷沥;模擬異步數(shù)據(jù)


本地開發(fā)

前端開發(fā)環(huán)境包含兩部分,一部分是本地模擬服務器(Local Server)咪鲜,另一部分是本地代理(Local Proxy)

所有 WEB 客戶端跟服務器端的交互都會被本地環(huán)境所攔截狐赡,WEB 客戶端請求到真實的 WEB 服務器上的請求不會發(fā)生。

通過這種方式將前后端開發(fā)做徹底的分離

Local Server

WEB 客戶端請求某個頁面時疟丙,客戶端發(fā)出的所有請求首先都會被 Local Server 攔截颖侄,通過配置信息,Local Server 可以識別出這些請求所對應的模板文件和模擬數(shù)據(jù)所在的位置享郊,可將模板文件和模擬數(shù)據(jù)整合览祖,直接生成 HTML 頁面結(jié)構代碼,返回給 WEB 客戶端

Local Proxy

當客戶端發(fā)了異步請求之后炊琉,請求會被 Local Proxy 攔截展蒂,根據(jù)配置信息,匹配信息找出請求所對應的模擬數(shù)據(jù)苔咪,如果存在模擬數(shù)據(jù)锰悼,直接把模擬數(shù)據(jù)轉(zhuǎn)換成 JSON 數(shù)據(jù)對象或其他定義好的數(shù)據(jù)結(jié)構直接返回給 WEB 客戶端


3.版本管理

版本控制系統(tǒng) VCS (Version Control System)是一種記錄若干文件的修訂記錄的系統(tǒng),他幫助我們查閱或回到某個歷史版本

四種 VCS:人肉VCS ? LVCS本地 ? CVCS集中式 ? DVCS分布式

人肉 VCS

無法找到需要的版本团赏,也沒法查看差異

污染工作空間箕般,導致無法集中精力維護當前編輯版本

LVCS 本地式(RCS)

利用一個本地的版本數(shù)據(jù)庫來存儲版本

好處:需要哪個版本,只要從具體版里把它 checkout 即可舔清,可以維持當前工作目錄只是感興趣的版本丝里。

CVCS 集中式(CVS,SVN体谒,Perforce)

利用一個中央的服務器進行日常版本控制操作杯聚,所有操作都必須經(jīng)過中央服務器

在集中式版本管理下,可控性更高

但每一次操作都要經(jīng)過網(wǎng)絡請求抒痒,影響操作流暢性

單點故障:一旦發(fā)生故障幌绍,輕則無法進行相關操作,重則丟失歷史信息

DVCS 分布式(Git故响,Mercurial)

每一份本地倉庫都是一份完整的歷史拷貝纷捞,即使用于同步的中央服務器發(fā)生故障,可以從本地倉庫中將歷史還原

好處:相關操作大部分可在本地被去,更流暢


分支模型

分支:從目標倉庫獲得一份項目拷貝主儡,每條拷貝都有和原倉庫功能一樣的開發(fā)線,可在開發(fā)線提交代碼惨缆,也可以退回到某個版本

分支模型(branching model)/ 工作流(workflow)

一個圍繞項目[ 開發(fā) / 部署 / 測試?] 等工作流程的分支操作(創(chuàng)建糜值,合并等)規(guī)范集合

產(chǎn)品級的分支模型

常駐分支:development(從 master 創(chuàng)建)丰捷;production(master)默認分支

常駐分支一旦被創(chuàng)建,就不會更改

活動分支:feature(特性分支寂汇,從development創(chuàng)建)病往;hotfix(bug修復分支,從master創(chuàng)建)骄瓣;release(標識產(chǎn)品正式發(fā)布停巷,從 development創(chuàng)建)

活動分支會跟著產(chǎn)品的發(fā)布而被動態(tài)的創(chuàng)建,有時在完成開發(fā)時刪除榕栏,只留下對應的版本號


分支模型——特性開發(fā)畔勤,發(fā)布線

特性開發(fā)

從 D 創(chuàng)建 feature1,feature2扒磁,兩分支并行開發(fā)庆揪,feature1開發(fā)完成后合并到 D 分支,假如 feature2 后續(xù)開發(fā)依賴 feature1 提交妨托,將 feature1 提交合并到 feature2 缸榛。

feature2 開發(fā)完畢,將其合并到 D 分支

所有特性開發(fā)完畢兰伤,準備合并回 release 分支

假設同時在開發(fā)另一個特性内颗,但不在下一個版本發(fā)布,完全不受發(fā)布線影響敦腔,并行開發(fā)即可起暮。


發(fā)布線

首先所有屬性都已經(jīng)合并到開發(fā)分支,準備發(fā)布会烙。創(chuàng)建 release 分支,擁有當前 development 分支所有信息筒捺,在其中進行少量的 Bug 修復與數(shù)據(jù)更新柏腻。

所有在 release 提交的代碼,都需要合并到 development 分支系吭,將來更好進行版本回溯五嫂。

最后一次 release 分支提交,推送到 master 分支肯尺,打上相應版本號沃缘,可直接上線。

若存在線上 Bug则吟,在小版本進行處理槐臀,代碼修復的提交也需要合并到開發(fā)分支。

涉及的四個環(huán)境

開發(fā)環(huán)境(feature分支)氓仲;測試環(huán)境(release/development分支)水慨;預發(fā)布環(huán)境(release分支)得糜;生產(chǎn)環(huán)境(master分支)

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晰洒,隨后出現(xiàn)的幾起案子朝抖,更是在濱河造成了極大的恐慌,老刑警劉巖谍珊,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件治宣,死亡現(xiàn)場離奇詭異,居然都是意外死亡砌滞,警方通過查閱死者的電腦和手機侮邀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來布持,“玉大人豌拙,你說我怎么就攤上這事√馀” “怎么了按傅?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胧卤。 經(jīng)常有香客問我唯绍,道長,這世上最難降的妖魔是什么枝誊? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任况芒,我火速辦了婚禮,結(jié)果婚禮上叶撒,老公的妹妹穿的比我還像新娘绝骚。我一直安慰自己,他們只是感情好祠够,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布压汪。 她就那樣靜靜地躺著,像睡著了一般古瓤。 火紅的嫁衣襯著肌膚如雪止剖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天落君,我揣著相機與錄音穿香,去河邊找鬼。 笑死绎速,一個胖子當著我的面吹牛皮获,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播纹冤,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼魔市,長吁一口氣:“原來是場噩夢啊……” “哼主届!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起待德,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤君丁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后将宪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绘闷,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年较坛,在試婚紗的時候發(fā)現(xiàn)自己被綠了印蔗。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡丑勤,死狀恐怖华嘹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情法竞,我是刑警寧澤耙厚,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站岔霸,受9級特大地震影響薛躬,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜呆细,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一型宝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧絮爷,春花似錦趴酣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至渊涝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間床嫌,已是汗流浹背跨释。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厌处,地道東北人鳖谈。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像阔涉,于是被迫代替她去往敵國和親缆娃。 傳聞我的和親對象是個殘疾皇子捷绒,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容