概述前端
先後端分離已成爲互聯網項目開發的業界標準使用方式,經過nginx+tomcat的方式(也能夠中間加一個nodejs)有效的進行解耦,而且先後端分離會爲之後的大型分佈式架構、微服務架構、多端化服務(例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎。vue
核心思想node
前端HTML頁面經過AJAX調用後端的RESTFULAPI接口並使用JSON數據進行交互(撕逼大戰正式拉開帷幕)nginx
先後端痛苦的開始git
前端: 爲何接口文檔永遠都是不對的?爲何接口會頻繁變更? ** 你個 **github
後端: 老改需求,我寫業務這麼忙,哪有時間寫文檔?誰愛** 寫誰 ** 寫sql
傳統思惟公司,先後端正式開戰json
如今不少傳統公司或者小廠慢慢開始往先後端分離路線走,而多數這種類型公司的技術研發老大都是後端人員擔任的,那麼很容易致使以上的問題。從而致使的就是開發進度緩慢,交付延後,先後端常常性撕逼,整個團隊氛圍都會變得不好。後端
存在的問題api
先後端分離確實是進行了有效的解藕,下降了維護的成本,可是人員溝通成本也隨之提升。
解決方案
解決問題方案是定義json 以及編寫及時文檔!
現有不少在線api 工具,能夠實現實時測試,接口在線編寫。 例如:
YApi github.com/YMFE/yapi
eolinker www.eolinker.com/
編寫需求文檔!需求文檔並非交付給甲方爸爸的做業,而是在開發過程當中先後端用來下降交流成本的利器,甚至實現無溝通開發。 每一個人都沒法避免知識的詛咒,若是僅僅用口述的方式來說解,很容易形成你以爲你講的很明白,對方一臉懵逼狀態,那麼造成文字的東西很容易讓雙方理解需求並進行開發了。(若是說編寫文檔成本很高的話,那麼先後端撕逼起來半天可能都不寫碼你就能接受?) 工具:
teambition www.teambition.com/agile
提升接口設計能力以及json 定義能力。(json 結構還寫不對, ** 你個 **), 項目開始切忌立馬開始編碼,而是應該理解業務需求,設計可插拔可擴展的程序,業務的變動是在所不免的,那麼設計能力的重要性就體現出來了。 前期可能在架構設計上會耗費不少心智和時間,可是在後期業務變動的時候,就會感受很輕鬆很愜意。 真香^_^!
總結經驗
從經典的JSP+Servlet+JavaBean的MVC時代, 到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架時代, 再到前端框架(AngularJS、vueJS、ReactJS)爲主的MVVM時代,而後是Nodejs引領的全棧時代,技術和架構一直都在進步。創新之路不會止步,不管是先後端分離模式仍是其餘模式,都是爲了更方便得解決需求,但它們都只是一個「中轉站」。前端項目與後端項目是兩個項目,放在兩個不一樣的服務器,須要獨立部署,兩個不一樣的工程,兩個不一樣的代碼庫,不一樣的開發人員。前端只須要關注頁面的樣式與動態數據的解析及渲染,然後端專一於具體業務邏輯。