先後端分離小記

概述前端

先後端分離已成爲互聯網項目開發的業界標準使用方式,經過nginx+tomcat的方式(也能夠中間加一個nodejs)有效的進行解耦,而且先後端分離會爲之後的大型分佈式架構、微服務架構、多端化服務(例如:瀏覽器,車載終端,安卓,IOS等等)打下堅實的基礎。vue

核心思想node

前端HTML頁面經過AJAX調用後端的RESTFULAPI接口並使用JSON數據進行交互(撕逼大戰正式拉開帷幕)nginx

先後端痛苦的開始git

前端: 爲何接口文檔永遠都是不對的?爲何接口會頻繁變更? ** 你個 **github

後端: 老改需求,我寫業務這麼忙,哪有時間寫文檔?誰愛** 寫誰 ** 寫sql

傳統思惟公司,先後端正式開戰json

如今不少傳統公司或者小廠慢慢開始往先後端分離路線走,而多數這種類型公司的技術研發老大都是後端人員擔任的,那麼很容易致使以上的問題。從而致使的就是開發進度緩慢,交付延後,先後端常常性撕逼,整個團隊氛圍都會變得不好。後端

存在的問題api

先後端分離確實是進行了有效的解藕,下降了維護的成本,可是人員溝通成本也隨之提升。

  1. 序員天生抗拒寫文檔,因此常常出現文檔字段說明不詳細(遇到牛逼的理由是看英文單詞就知道什麼意思啊),接口廢棄可是前端仍然在使用的狀況。
  2. 人的天生惰性,聯調前端調用後端接口,測試接口都交給前端,後端寫完就無論了。
  3. 業務處理的先後端分工不明確,先後端分離並非表示將後端人員只sql 查完數據不作任何處理就徹底交給前端,不考慮過瀏覽器的處理能力、帶寬限制、安全性因素(業務的拓展以及維護)
  4. 後端工做量大致使開發前期,前端只能作靜態頁面,中期一直在等後端出文檔。
  5. 人員離職後沒有對應文檔和註釋沒有辦法當即展開有效的工資

解決方案

解決問題方案是定義json 以及編寫及時文檔!

  1. 現有不少在線api 工具,能夠實現實時測試,接口在線編寫。 例如:

    YApi github.com/YMFE/yapi

    eolinker www.eolinker.com/

  2. 編寫需求文檔!需求文檔並非交付給甲方爸爸的做業,而是在開發過程當中先後端用來下降交流成本的利器,甚至實現無溝通開發。 每一個人都沒法避免知識的詛咒,若是僅僅用口述的方式來說解,很容易形成你以爲你講的很明白,對方一臉懵逼狀態,那麼造成文字的東西很容易讓雙方理解需求並進行開發了。(若是說編寫文檔成本很高的話,那麼先後端撕逼起來半天可能都不寫碼你就能接受?) 工具:

    teambition www.teambition.com/agile

  3. 提升接口設計能力以及json 定義能力。(json 結構還寫不對, ** 你個 **), 項目開始切忌立馬開始編碼,而是應該理解業務需求,設計可插拔可擴展的程序,業務的變動是在所不免的,那麼設計能力的重要性就體現出來了。 前期可能在架構設計上會耗費不少心智和時間,可是在後期業務變動的時候,就會感受很輕鬆很愜意。 真香^_^!

總結經驗

從經典的JSP+Servlet+JavaBean的MVC時代, 到SSM(Spring + SpringMVC + Mybatis)和SSH(Spring + Struts + Hibernate)的Java 框架時代, 再到前端框架(AngularJS、vueJS、ReactJS)爲主的MVVM時代,而後是Nodejs引領的全棧時代,技術和架構一直都在進步。創新之路不會止步,不管是先後端分離模式仍是其餘模式,都是爲了更方便得解決需求,但它們都只是一個「中轉站」。前端項目與後端項目是兩個項目,放在兩個不一樣的服務器,須要獨立部署,兩個不一樣的工程,兩個不一樣的代碼庫,不一樣的開發人員。前端只須要關注頁面的樣式與動態數據的解析及渲染,然後端專一於具體業務邏輯。

相關文章
相關標籤/搜索