我們遇到了什么問題?

1.前端無法調(diào)試后端未完成的 API:如果后端同學(xué)還沒有完成 API 開發(fā),那么前端同學(xué)就不能對這個(gè) API 進(jìn)行開發(fā)。之前我們都是在代碼里直接通過給變量賦假數(shù)據(jù),又或者是在后端 Controller 里直接 return JSON 的方式來進(jìn)行調(diào)試的。這樣的方式很容易會(huì)出現(xiàn)的情況就是,每次提交 commit 都要把它刪除掉,有時(shí)忘了沒有刪除掉,那么提交歷史就會(huì)變得很臟。

2.沒有自動(dòng)化測試:前端對接口的調(diào)用沒有做自動(dòng)化的測試。

3.前端需要依賴后端開發(fā)環(huán)境:前端需要后端環(huán)境來在本地測試,像我們使用的方案就是 Vagrant + 虛擬機(jī)的來開發(fā)。這樣的方式其實(shí)很笨重,不但每次啟動(dòng)虛擬機(jī)都得等一段時(shí)間,而且會(huì)占用一定的 CPU 和內(nèi)存資源,拖慢機(jī)器。然而,前端需要的只是數(shù)據(jù)。

如何去解決這些問題? ——前后端分離

大部分的互聯(lián)網(wǎng)公司都分成了前端團(tuán)隊(duì)和后端團(tuán)隊(duì)。在軟件設(shè)計(jì)中,我們有一個(gè)思想就是 Separation of Concerns (Soc),也就是 關(guān)注點(diǎn)分離 的思想。既然我們采用了前后端由不同團(tuán)隊(duì)開發(fā)的模式,那么我們應(yīng)該有分治的思想,也就是說,我們要盡可能更多地關(guān)注自己從事的領(lǐng)域。

一.為什么要前后端分離?

1.框架層面

前后端倉庫的分離:

整個(gè)前端工程使用git subtree從后端Git工程中切分出來。后端應(yīng)用均使用同一個(gè)前端代碼庫。

前端只clone前端代碼,啟動(dòng)前端工程。前端使用sever來mock數(shù)據(jù)渲染ftl模板以及頁面展示

2.開發(fā)層面

前后端約定好接口,各自開發(fā);節(jié)約時(shí)間(但聯(lián)調(diào)的時(shí)間可能增加),接口有更新及時(shí)溝通

前后端分離 開發(fā)流程圖

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式