摘要:前后端分離的項(xiàng)目開(kāi)發(fā)策略已經(jīng)不是什么新鮮東西了,網(wǎng)上介紹這方面的文章非常多。我自己是在年的時(shí)候接觸到的,對(duì)這種開(kāi)發(fā)策略一直愛(ài)不釋手,不管新老項(xiàng)目都會(huì)首先用前后端分離的思維先去思考一番。
前后端分離的項(xiàng)目開(kāi)發(fā)策略已經(jīng)不是什么新鮮東西了,網(wǎng)上介紹這方面的文章非常多。我自己是在14年的時(shí)候接觸到的,對(duì)這種開(kāi)發(fā)策略一直愛(ài)不釋手,不管新老項(xiàng)目都會(huì)首先用前后端分離的思維先去思考一番。從14年到現(xiàn)在在前后分離上面也實(shí)踐了近3年的時(shí)間,項(xiàng)目大大小小的也差不多4,5個(gè)吧,但是卻從來(lái)沒(méi)有一個(gè)是自己覺(jué)得很滿意的,其中的原由和心酸可能只有自己才能體會(huì)了。
前后端分離是什么“前端”通常指的是,相對(duì)來(lái)說(shuō)更接近用戶的一端,例如:APP,網(wǎng)頁(yè)、桌面程序等,在現(xiàn)實(shí)開(kāi)發(fā)中大部分情況可以理解為“客戶端”;
“后端”相對(duì)來(lái)說(shuō)就更泛化了,可以理解為是為前端提供服務(wù)的一端。
”分離“顧名思義就是將”前端“和”后端進(jìn)行分開(kāi)“,但是這里的分開(kāi)主要從下面幾個(gè)緯度進(jìn)行分離
架構(gòu)分離,前端不需要依賴后端架構(gòu)同時(shí)后端也不需要知道前端使用何種架構(gòu)
人員分離,前端后端使用的技術(shù)相互之間根部不需要相互了解完全可以在做到透明(當(dāng)然相互了解會(huì)更好)
工作分離,基于項(xiàng)目或者產(chǎn)品的單個(gè)功能的橫向進(jìn)行工作分離,任務(wù)劃分更細(xì)
關(guān)注點(diǎn)分離,前端偏向用戶,后端偏向系統(tǒng)本身
分離的優(yōu)缺點(diǎn)(相對(duì)于一體化的開(kāi)發(fā)策略) 優(yōu)點(diǎn)非常多,例舉一些比較明顯的
后端技術(shù)不再受局限
后端可以根據(jù)不同的業(yè)務(wù)場(chǎng)景選擇合適的技術(shù)進(jìn)行實(shí)現(xiàn)接口服務(wù),技術(shù)和人一樣,什么都能做的往往不是很精而長(zhǎng)期專注某個(gè)領(lǐng)域的在處理特定問(wèn)題的時(shí)候就比較又優(yōu)勢(shì),例如ruby,python,nodejs等很多語(yǔ)言都有自己非常擅長(zhǎng)的領(lǐng)域。
團(tuán)隊(duì)扁平化
這和soa的開(kāi)發(fā)思路代理的好處是一樣的,一個(gè)項(xiàng)目20多個(gè)系統(tǒng),如果沒(méi)有這種soa是開(kāi)發(fā)思路要想半年內(nèi)開(kāi)發(fā)完成,給你再多人都沒(méi)用。這就像過(guò)獨(dú)木橋一樣。因此前端分離某種意義上來(lái)說(shuō)又給我們提供了一座大橋,相對(duì)的團(tuán)隊(duì)更扁平化
降低項(xiàng)目風(fēng)險(xiǎn)提供項(xiàng)目質(zhì)量
這種分離讓項(xiàng)目有了更多的切割點(diǎn)降低項(xiàng)目風(fēng)險(xiǎn),同時(shí)因?yàn)殛P(guān)注點(diǎn)不一樣項(xiàng)目的質(zhì)量會(huì)明顯提高
整體開(kāi)發(fā)效率提升
大部分時(shí)間都只需要使用自己擅長(zhǎng)的東西,前后端都很舒服,自然效率就會(huì)上來(lái)
與其說(shuō)缺點(diǎn),實(shí)際上可以理解為是在實(shí)踐前后端分離的過(guò)程中需要解決的困難和難點(diǎn)
seo,這是首當(dāng)其沖的,再不進(jìn)行附加處理的情況下seo是無(wú)法滿足的
溝通成本增加,在功能溝通中多了前端這個(gè)角色,而且往往是產(chǎn)品、設(shè)計(jì)、后端多方溝通
安全,相對(duì)于一體化的前端,安全問(wèn)題更多,最簡(jiǎn)單的例子:后端接口基本全部暴露
如何解決前端后端分離帶來(lái)的問(wèn)題
seo,這個(gè)問(wèn)題主要針對(duì)前端是web端情況。導(dǎo)致這個(gè)問(wèn)題的根本是因?yàn)閲?guó)內(nèi)的搜索引擎不會(huì)分析js代碼,因此在基于js實(shí)現(xiàn)的頁(yè)面就無(wú)法得到seo的支持,那么也就是說(shuō)必須給搜素引擎提高完整的html。解決這個(gè)問(wèn)題并沒(méi)有太好的方式,主要還是2方面入手
使用一體化前端專門為爬蟲(chóng)提供一套頁(yè)面,只做數(shù)據(jù)渲染,不做UI/UX
使用nodejs實(shí)現(xiàn)服務(wù)器端渲染(為什么選擇是nodejs?)
安全,傳統(tǒng)的cooike/session也是ok的,只是類似jwt這種認(rèn)證的方式更好些
總結(jié)前后端分離,值得所有前端去嘗試,雖然累到最后你會(huì)自己責(zé)備自己:“我這是在干嗎,明明只要寫(xiě)寫(xiě)js效果就完成工作的事情,為什么現(xiàn)在天天加班,還到處找人溝通(產(chǎn)品設(shè)計(jì)不合理的時(shí)候需要溝通下,設(shè)計(jì)適配沒(méi)考慮的時(shí)候需要和他討論下,接口偷懶的時(shí)候還得看人家心情)”;但是,但是當(dāng)你真的做了一段時(shí)間之后你會(huì)又更多的收獲,不僅僅是技術(shù)層面,更多的是技術(shù)設(shè)計(jì)層面的東西
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/92449.html
摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實(shí)踐。然而一些歷史項(xiàng)目在從一體化設(shè)計(jì)轉(zhuǎn)向前后端分離的架構(gòu)時(shí),不可避免的會(huì)遇到各種各樣的問(wèn)題。搞了一個(gè)前后分離,需要分離部署。 探究 :深入聊聊前后分離架構(gòu) 前后分離,一直是一個(gè)相當(dāng)泛泛的問(wèn)題,前后分離到底好不好?沒(méi)有絕對(duì)的對(duì),沒(méi)有絕對(duì)的錯(cuò),業(yè)界就這個(gè)問(wèn)題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點(diǎn)在于:分離當(dāng)然是好的,但是以什么樣的服...
摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實(shí)踐。然而一些歷史項(xiàng)目在從一體化設(shè)計(jì)轉(zhuǎn)向前后端分離的架構(gòu)時(shí),不可避免的會(huì)遇到各種各樣的問(wèn)題。搞了一個(gè)前后分離,需要分離部署。 探究 :深入聊聊前后分離架構(gòu) 前后分離,一直是一個(gè)相當(dāng)泛泛的問(wèn)題,前后分離到底好不好?沒(méi)有絕對(duì)的對(duì),沒(méi)有絕對(duì)的錯(cuò),業(yè)界就這個(gè)問(wèn)題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點(diǎn)在于:分離當(dāng)然是好的,但是以什么樣的服...
摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實(shí)踐。然而一些歷史項(xiàng)目在從一體化設(shè)計(jì)轉(zhuǎn)向前后端分離的架構(gòu)時(shí),不可避免的會(huì)遇到各種各樣的問(wèn)題。搞了一個(gè)前后分離,需要分離部署。 探究 :深入聊聊前后分離架構(gòu) 前后分離,一直是一個(gè)相當(dāng)泛泛的問(wèn)題,前后分離到底好不好?沒(méi)有絕對(duì)的對(duì),沒(méi)有絕對(duì)的錯(cuò),業(yè)界就這個(gè)問(wèn)題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點(diǎn)在于:分離當(dāng)然是好的,但是以什么樣的服...
摘要:先來(lái)看一張系統(tǒng)前后端架構(gòu)模型圖。一種接口的約定本文用于定義一種統(tǒng)一的接口設(shè)計(jì)方案,希望具有參考價(jià)值。,和都是常見(jiàn)的軟件架構(gòu)設(shè)計(jì)模式,它通過(guò)分離關(guān)注點(diǎn)來(lái)改進(jìn)代碼的組織方式。 如何無(wú)痛降低 if else 面條代碼復(fù)雜度 相信不少同學(xué)在維護(hù)老項(xiàng)目時(shí),都遇到過(guò)在深深的 if else 之間糾纏的業(yè)務(wù)邏輯。面對(duì)這樣的一團(tuán)亂麻,簡(jiǎn)單粗暴地繼續(xù)增量修改常常只會(huì)讓復(fù)雜度越來(lái)越高,可讀性越來(lái)越差,有沒(méi)...
閱讀 1846·2021-09-14 18:03
閱讀 2278·2019-08-30 15:48
閱讀 1135·2019-08-30 14:09
閱讀 518·2019-08-30 12:55
閱讀 2740·2019-08-29 11:29
閱讀 1501·2019-08-26 13:43
閱讀 2324·2019-08-26 13:30
閱讀 2382·2019-08-26 12:17