本人是寫 C/S 端開始工作,后來寫了2年 ASP.Net 然后最近4年開始接觸 TypeScript,Angular,Vue。為什么不學 React ?太專業了,學習成本太高。
在 Angularjs(不是 Angular2+), Vue, Rect,還沒出現之前,Net 體系都是 ASP.Net + Razor + JQuery 整體的開發整個網站。如下圖:
那么問題來了,整個東西全部由 Net 開發去做,前端做啥?我記得那個時候前端就是做原型,后端開發再拿去改改,聯調。
然后 前后端分離 已經成了一個必然的趨勢,有沒有感覺這個場景好像在哪見過?沒錯,就是解耦,高內聚,低耦合。
后端的開發做解耦就是用接口去做分離,比如新手(包括我以前)總覺得創建一個類再加個接口,然后用 DI 去注入一個實例感覺多此一舉,
然而並不是那樣,這樣的設計目的是保持程序擴展性,利用面向對象的特性來設計。(PS: 關於接口我可能還會再單獨寫點東西)
那么前后端分離到底有哪些好處呢。
1.分離關注點
前端只關心數據如何展示,用戶體驗,美觀炫酷,以及前端自己的邏輯流程(比如頁面跳轉,數據存儲等),至於后端是什么語言都不用關心
后端只關心數據接口,業務邏輯的接口,通常就是 Webapi 接受前端的 http 請求,只要能接收 http 請求,甚至可以是 RPC ,至於是誰請求並不關心,只要有類似 JWT, OAuth 認證
2.提高開發效率
當前后端雙方將初步設計的接口敲定,雙方可以開始並行工作,相比較以前的工作模式,前端必須等待后端完成的進度來繼續工作,相當於 多線程同步 直接轉換為 並行計算。PS: 前端還可以
自己去 Mock 數據,完全不要服務端寫一些偽數據接口,自己玩耍,早早下班 Happy ,階段工作總是比后端先寫完。。
整體結構如下圖:
寫在最后:以后的工作模式肯定是細化工作,專精某一領域去工作,團隊越大越細化,並不是說全棧不好,高級全棧工資很高,而是人的精力有限(如果你是非常熱愛編程,每天70%~90%時間都在編程的那種鬼才請無視我這句話)
專注某一個領域去鑽研更容易提高你的核心競爭力,也就是工資更高。