轉載本文需註明出處:微信公衆號EAWorld,違者必究。
最近我身邊的幾個技術專家都在學習前端技術(VUE)的開發,爲何他們要學習前端技術呢?由於隨着軟件技術的發展,全棧工程師已然成爲將來發展趨勢,對大部分技術人而言,須要既懂後端技術,又能進行前端開發,成爲全棧工程師。
什麼是先後端分離的研發模式?
與「全棧工程師」相對的,是「先後端分離」的研發模式。先後端分離模式有兩種含義:
先後端分離的部署模式,即前端服務器使用nginx等WEB服務器,部署css、js、圖片等等一系列靜態資源,負責控制頁面引用、跳轉、路由,前端頁面異步調用後端的接口,後端/應用服務器做爲一個數據提供者,加快總體響應速度。
先後端分離的軟件研發模式,因爲先後端使用的技術愈來愈不一致,前端又包括PC和移動前端,應用對人機交互的要求比較高,不少公司尤爲是互聯網公司,常常分爲專門的前端工程師和後端工程師,後端工程師負責業務邏輯的實現、數據的準備,前端工程師交互設計、數據裁減、界面實現。
先後端分離的部署方式,提升了系統的響應能力,是將來主要的企業應用架構模式,咱們也須要採用。這裏的先後端分離是指第二種,即先後端分離的研發模式。
先後端分離研發模式的利與弊
事物老是一分爲二的,有一利必有一害:先後端分離的研發模式,前端的重點放在頁面表現、速度流暢、兼容性、用戶體驗,後端的重點放在三高(高併發,高可用,高性能)、安全、存儲、業務方面,術業有專攻(目前不少互聯網公司採用這種模式,公司 DevOps 產品研發也採用這種方式)。可是這種作法也有明顯的缺點,就是溝通、集成成本高,先後端接口常常變化、前端/後端互相不理解、聯調複雜,對於團隊協做的很高。
既然有利有弊,那解決問題的方式就是分析主要矛盾、次要矛盾。某些技術團隊及互聯網公司之因此採用先後端分離的模式,是由於:
業務方向比較穩定,業務方向也不會有大的調整,能夠不斷優化,逐步造成好的設計,保持接口的穩定,避免反覆調整;
可以造成穩定的閉環軟件研發過程,例如從需求的提出到測試上線,雖然需求變化很快,但都是團隊內部/公司內部的事情,溝通相對方便;
技術團隊比較穩定,人員一塊兒磨合時間比較長,溝通相對順暢。
分析問題後能夠看出,若是技術團隊的主要矛盾是減小溝通成本,快速推出業務,而不是精益求精的技術運營,可採用全棧方式。我不反對有條件的項目嘗試先後端分離的研發模式,可是要看看自身是否是適合,設計能力比較強、業務比較穩定的團隊能夠嘗試。
克服畏難心理,學習新技術,成爲全棧工程師
面對不斷變化的市場形勢,有時就須要咱們成爲全棧工程師。目前我看到的狀況是,更多的工程師存在畏難的心理。其實所謂全棧,也就是前端、後端、數據庫技術,前端技術要學習目前的前端開發工具(NPM、WebPack、Babel等插件)以及 VUE 框架便可,後端是 Java 技術,須要掌握 Spring Boot 的配置、POM/Maven 等開發工具,數據庫要寫好 SQL。有了這些基礎,就能夠成爲一個全棧工程師,不須要求全責備。
都是全棧工程師,也須要專業的前端工程師保駕護航
有了全棧工程師,還須要專業的前端工程師保駕護航,專業的前端工程師有兩個方向:
在項目中承擔交互設計和美工的做用,根據項目設計前端的規範,解決各項目中的前端問題;
成爲前端架構師,跟蹤前端技術發展,制定前端規範,研發/維護前端框架,搭建統一的前端開發環境,解決各項目的關鍵問題。
css
向將來的全棧工程師致敬!前端
關於做者:焦烈焱,普元信息CTO,致力於技術創新和金融創新解決方案研究。專一於企業技術架構領域,對分佈式環境的企業計算、 企業信息架構的規劃與實踐有着豐厚經驗,帶領普元技術團隊相繼在雲計算、大數據及移動開發領域取得多項突破,並主持中國工商銀行、中國建設銀行等多家大型企業技術平臺的規劃與研發。
關於EAWorld:微服務,DevOps,數據治理,移動架構原創技術分享。長按二維碼關注!nginx