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