我們遇到了什么問(wèn)題?

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

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

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

如何去解決這些問(wèn)題? ——前后端分離

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

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

1.框架層面

前后端倉(cāng)庫(kù)的分離:

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

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

2.開(kāi)發(fā)層面

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

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

網(wǎng)友評(píng)論