今天:公司的架構師說:項目要采用前后端分離來說,vue+golang ,各位先了解一下技術棧!不要說不會用哦,目前最流行了!
確實,這幾年,angular、react、vue這些前端框架非常的火,用途之廣泛,有統一大前端之勢!
web、App、小程序、公眾號,沒有不能做的,一次開發,多端運行!
從事互聯網行業的不了解幾個前端框架,就有抬不起頭的感覺了,
作為一個從業多年的老程序員,其實開始我是排斥的,一個人可以 搞定的事情,為什么非要分開,浪費人力,還要對接調試,這不是沒事找事嗎!呵呵,請原諒我老人對新事物接受慢,需要時間,
當我仔細思考一下,其實事物總是向好的方向發展的。
今天就看看到底有哪些優勢:
1. 前后端耦合更低
前端工程師負責頁面開發,前端設備兼容性,用戶體驗等;
后端工程師負責系統性能、擴展性、負載能力、分布式集群部署等;
分工更明晰,專業性更高。
以前流行MVC架構,不論是什么語言,都有大把的mvc框架可以用,都是一個語言搞定前后端;
比較流行的有JAVA的spring ,Python的django,php的Laravel、thinkphp、ci等,
如圖:

mvc
而現在的前后端分離MVVM,顯得更加的徹底。一般通過網絡請求的接口,把返回的數據寫在ViewModel里面,ViewModel再通知Controller來取得相應的數據,并顯示在view上。像vue這些框架利用雙向綁定技術,使得 Model 變化時,ViewModel 會自動更新,而 ViewModel 變化時,View 也會自動變化。

mvvm
2. 提高了開發效率
以前的開發流程:
a. 開會討論需求;
b. UI進行界面設計;
c. 將設計圖切圖做成html;
d. 后端工程師整合頁面;
e. 功能測試;
f. 部署上線;
一旦需求有改動,UI有改動,后面的所有流程都要重新走一遍,做過的都知道什么感覺!
而前后端分離后,開發模式是這樣的:
a. 開會討論需求;
b. UI進行界面設計;
c. 前后端工程師訂好接口,開始各自開發
d. 接口調試;
e. 功能測試;
f. 部署上線;
后面頁面的修改、優化,后端可能不需要修改了。
3. 更容易開發部署升級
前端靜態頁面,Nginx進行支持,并做cdn緩存,
后端服務化,各自用熟悉的語言開發,升級對用戶影響越來越小。
4. 多端應用,行業發展趨勢
以前的應用以web為主,最多有個mobile端,而現在用戶設備多元化,同樣的數據需要在不同設備展現,如果數據和頁面在一起,非常的不方便。
而分離后,后端api只需要提供json數據,提高了代碼重用,不關心頁面,前端怎么展示和修改也不會影響到后端。

多端訪問
5. 提高后端擴展性
現在的應用,不管用戶量多少,都考慮分布式集群部署,用戶身份驗證,數據緩存,圖片文件訪問等都沒有單體應用那么好控制,每個功能都向服務化轉變,性能和擴展性是后端考慮的重點,而這些和前端關系不大,前后分離使前端免受后端變動的影響。
也說一下缺點:
1. 開發維護成本高
維護部署事情多,免不了增加人手,對于老板來說,怎么做不重要,他更關心成本,遇到小氣的老板,還是采用更簡單的方法為妥,否則就等著加班吧。其實對很多應用,根本遇不到很大的用戶量,這時采用簡單架構可能更好。
2.前端難度加大:
框架的百花齊放,也讓前端都在學習框架,而對js原生的東西了解的越來越少了,之前面試的前端,只知道vue、react,對JavaScript的原型繼承、事件驅動、異步執行隊列這些概念了解甚少,因為前端更新速度快,也導致前端開發者學習新框架疲于奔命,原理更加不了解。
好了,如果你是架構師,你會選擇怎樣的架構呢!