問題:對於前後端開發分離應該怎麼理解,有些什麼實現方式,分不分離有些什麼優缺點,適合怎樣的項目,具體項目開發時如何選擇分離還是不分離的形式,大家有些什麼體會,還請不吝賜教~
以下是我對前後端開發分離與不分離的一點理解,不當之處麻煩告知我~
表現形式: 前端開發專案與後端開發專案分隔開,通訊透過跨域請求(開發情況下常透過代理),頁面路由由前端處理,所有資料均透過請求取得;
特點:
前後端開發互不影響;
前端可集中所有數據,在所有頁面均可以存取到應用的數據,可避免重複請求獲取相同數據;
載入完頁面後需要載入資料的時間,有時會有資料延遲或載入資料失敗的情況;
標誌:/#/ , url中網域後有此標誌
開發方式:
1)開發時分離,開發完成合併,例如:
透過vue-cli
建立的項目,前端開發完成後把產生的前端資源文件合併到後端專案(如laravel)裡;
2)開發時分離,開發完成仍保持分離,例如:ionic
開發的混合APP專案
表現形式:前端專案與後端專案是同一個,頁面路由由後端處理,可同時帶資料返回,資料通訊不需要跨域;
特性:
開發中前後端聯繫較緊密,會出現相互影響的情況;
後端在返回頁面時同時返回了該頁面所需的數據,因此用戶在訪問某頁時不會出現資料延遲或取得資料失敗的情況;
開發方式:laravel
的blade
範本形式
Web研發模式演進
看了下上面這篇文章,感覺有多一點理解,但還沒吃透
題主是從技術上考慮的,其實是否分離都是由業務和成本決定的。如果你有足夠的前後端開發人員,而且業務還比較複雜,當然要前後端分離,專業的人做專業的事,這對需求品質和後期維護都是有益的。但是前後端分離也會增加溝通成本,你的業務前端後端都需要了解,而且還多了前後端聯調測試的環節。
優點:
約定好介面以後就可以專注於自己的那部分,可以前後端並行開發,效率也能提升,對品質和後期維護也是很大的提升。
缺點:
溝通成本、人員成本。