前言:分離模式
對前后端分離研究了一段時(shí)間,恰逢公司有一個(gè)大項(xiàng)目決定嘗試使用前后端分離模式進(jìn)行,便參與其中。該項(xiàng)目從2016年初立項(xiàng)至今,平平穩(wěn)穩(wěn)得度過,但也涌現(xiàn)出越來越多的問題,絕對不是說前后端分離模式不好,而是很多公司在嘗試前后端分離的時(shí)候沒有做好充分得準(zhǔn)備。
網(wǎng)上對前后端分離介紹的文章已經(jīng)屢見不鮮,接下來本人用一點(diǎn)粗淺的言語也談?wù)勥@塊,獻(xiàn)丑了。
為什么要分離?
如果只問“前后端分離的意義大么?”這是廢話,因?yàn)閺能浖軜?gòu)的角度 Web 的前后端從一開始不就一直是分離的么,而且 browser、server 可能將永遠(yuǎn)分離下去。
為了了解這個(gè)問題,我們有必要先了解一下 Web的研發(fā)模式演變,關(guān)于這個(gè)題材,下面這篇博文說得不錯(cuò),這邊就不做搬運(yùn)工了。
https://github.com/lifesinger/blog/issues/184
我們不能“為了分離而分離”,而應(yīng)該“為了真正理解web開發(fā)、為了更好完成需求而分離”。
前后端分離的誤區(qū)?
1、前端人員配備是否充足?
由于所在公司以往項(xiàng)目采用傳統(tǒng)開發(fā)風(fēng)格,即以后端MVC為主的開發(fā)模式,前端人員僅僅提供靜態(tài)html頁面,其余工作皆由后端開發(fā)人員完成。采用前后端分離模式可以減后臺負(fù)擔(dān),加快研發(fā)效率,當(dāng)然,前提是前端能做好的話。以往只需要提供靜態(tài)頁面的前端人員,在前后端分離模式中要負(fù)責(zé)項(xiàng)目的view+controller部分,即除了靜態(tài)頁面,還需要負(fù)責(zé)頁面的所有交互代碼、以及nodejs與視圖層以及后端API的交互工作,無疑增加了前端人員的學(xué)習(xí)成本,在沒有足夠知識和人才儲備的情況下,只能讓前端人員加班加點(diǎn)。結(jié)果是大量前端人員離職(PS:做這么多事,工資總得加吧!)
2、前后端職責(zé)分配?
很多公司認(rèn)為采用前后端分離之后,前后端只需要通過指定API進(jìn)行交互即可,前端負(fù)責(zé)頁面渲染,Nodejs負(fù)責(zé)路由分配,后端提供API。