前后端分離概述

背景

前后端分離模式是對MVC開發(fā)模式的優(yōu)化與延續(xù)吴藻,前后端分離已成為互聯(lián)網(wǎng)項目開發(fā)的業(yè)界標準使用方式渗钉,通過nginx+tomcat的方式(也可以中間加一個nodejs)有效的進行解耦,并且前后端分離會為以后的大型分布式架構屡江、彈性計算架構、微服務架構、多端化服務(多種客戶端唉窃,例如:瀏覽器,車載終端纹笼,安卓以清,IOS等等)打下堅實的基礎。

MVC科普:model-view-controller
REST風格API設計原則

為什么要前后端分離

  • 用戶訪問頁面越來越慢
  • 系統(tǒng)性能下降亲配,數(shù)據(jù)庫扛不住,連接數(shù)經(jīng)常打滿件已,最終數(shù)據(jù)庫掛掉,重啟后又快速掛掉
  • 改了一個小地方元暴,另外一個看似不相干的地方卻掛了篷扩,嚴重耦合
  • 互聯(lián)網(wǎng)日趨移動化

開發(fā)模式的探索

以前的方式 新的方式
產(chǎn)品經(jīng)歷/領導/客戶提出需求 產(chǎn)品經(jīng)歷/領導/客戶提出需求
UI做出設計圖 UI做出設計圖
前端工程師做html頁面 前后端約定接口&數(shù)據(jù)&參數(shù)
后端工程師將html頁面套成jsp頁面 前后端并行開發(fā)
集成出現(xiàn)問題 前后端集成
前端返工 前端頁面調(diào)整
后端返工 集成成功
二次集成 交付
集成成功
交付

請求方式的改變

以前的方式 新的方式
客戶端請求 瀏覽器發(fā)送請求
服務端的servlet或controller接收請求 直接到達html頁面
調(diào)用service,dao代碼完成業(yè)務邏輯 html頁面負責調(diào)用服務端接口產(chǎn)生數(shù)據(jù)
返回jsp 填充html,展現(xiàn)動態(tài)效果茉盏,在頁面上進行解析并操作DOM鉴未。
jsp展現(xiàn)一些動態(tài)的代碼

前后端分離褒貶的討論

需要前后端分離場景
  1. 前端變化遠比后端變化頻繁
  2. 尚處于原始開發(fā)模式,數(shù)據(jù)邏輯與表現(xiàn)邏輯混雜不清
  3. 前端效果絢麗/跨設備兼容要求高

前后分離的優(yōu)勢:

  1. 可以實現(xiàn)真正的前后端解耦鸠姨,前端服務器使用nginx铜秆。
  2. 發(fā)現(xiàn)bug,可以快速定位是誰的問題讶迁,不會出現(xiàn)互相踢皮球的現(xiàn)象连茧。
  3. 在大并發(fā)情況下,可以同時水平擴展前后端服務器巍糯。
  4. 減少后端服務器的并發(fā)/負載壓力
  5. 即使后端服務暫時超時或者宕機了梅屉,前端頁面也會正常訪問,只不過數(shù)據(jù)刷不出來而已鳞贷。
  6. 多端應用
  7. 頁面顯示的東西再多也不怕坯汤,因為是異步加載。
  8. nginx支持頁面熱部署搀愧,不用重啟服務器惰聂,前端升級更無縫。
  9. 增加代碼的維護性&易讀性(前后端耦在一起的代碼讀起來相當費勁)咱筛。
  10. 提升開發(fā)效率搓幌,因為可以前后端并行開發(fā),而不是像以前的強依賴迅箩。
  11. 在nginx中部署證書溉愁,外網(wǎng)使用https訪問,并且只開放443和80端口饲趋,其他端口一律關閉(防止黑客端口掃描)拐揭,
    內(nèi)網(wǎng)使用http,性能和安全都有保障奕塑。
  12. 前端大量的組件代碼得以復用堂污,組件化,提升開發(fā)效率龄砰,抽出來盟猖!

注意事項:

  1. 在開需求會議的時候讨衣,前后端工程師必須全部參加,并且需要制定好接口文檔式镐,后端工程師要寫好測試用例(2個維度)
  2. 上述的接口并不是java里的interface反镇,說白了調(diào)用接口就是調(diào)用你controler里的方法。
  3. 加重了前端團隊的工作量娘汞,減輕了后端團隊的工作量歹茶,提高了性能和可擴展性。
  4. 我們需要一些前端的框架來解決類似于頁面嵌套价说,分頁辆亏,頁面跳轉控制等功能风秤。
  5. 如果頁面上有一些權限等等相關的校驗鳖目,那么這些相關的數(shù)據(jù)也可以通過ajax從接口里拿。
  6. 前端需要有機制應對后端請求超時以及后端服務宕機的情況缤弦,友好的展示給用戶领迈。
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碍沐,隨后出現(xiàn)的幾起案子狸捅,更是在濱河造成了極大的恐慌,老刑警劉巖累提,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尘喝,死亡現(xiàn)場離奇詭異,居然都是意外死亡斋陪,警方通過查閱死者的電腦和手機朽褪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來无虚,“玉大人缔赠,你說我怎么就攤上這事∮烟猓” “怎么了嗤堰?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長度宦。 經(jīng)常有香客問我踢匣,道長,這世上最難降的妖魔是什么戈抄? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任符糊,我火速辦了婚禮,結果婚禮上呛凶,老公的妹妹穿的比我還像新娘男娄。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布模闲。 她就那樣靜靜地躺著建瘫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尸折。 梳的紋絲不亂的頭發(fā)上啰脚,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音实夹,去河邊找鬼橄浓。 笑死,一個胖子當著我的面吹牛亮航,可吹牛的內(nèi)容都是我干的荸实。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼缴淋,長吁一口氣:“原來是場噩夢啊……” “哼准给!你這毒婦竟也來了?” 一聲冷哼從身側響起重抖,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤露氮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后钟沛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畔规,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年恨统,在試婚紗的時候發(fā)現(xiàn)自己被綠了叁扫。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡延欠,死狀恐怖陌兑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情由捎,我是刑警寧澤兔综,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站狞玛,受9級特大地震影響软驰,放射性物質發(fā)生泄漏。R本人自食惡果不足惜心肪,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一锭亏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硬鞍,春花似錦慧瘤、人聲如沸戴已。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽糖儡。三九已至,卻和暖如春怔匣,著一層夾襖步出監(jiān)牢的瞬間握联,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工每瞒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留金闽,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓剿骨,卻偏偏與公主長得像代芜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子懦砂,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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