前後端分離的專案開發策略已經不是什麼新鮮東西了,網上介紹這方面的文章非常多。我自己是在14年的時候接觸到的,對這種開發策略一直愛不釋手,不管新老專案都會首先用前後端分離的思維先去思考一番。從14年到現在在前後分離上面也實踐了近3年的時間,專案大大小小的也差不多4,5個吧,但是卻從來沒有乙個是自己覺得很滿意的,其中的原由和心酸可能只有自己才能體會了。
「後端」相對來說就更泛化了,可以理解為是為前端提供服務的一端。
」分離「顧名思義就是將」前端「和」後端進行分開「,但是這裡的分開主要從下面幾個緯度進行分離
架構分離,前端不需要依賴後端架構同時後端也不需要知道前端使用何種架構
人員分離,前端後端使用的技術相互之間根部不需要相互了解完全可以在做到透明(當然相互了解會更好)
工作分離,基於專案或者產品的單個功能的橫向進行工作分離,任務劃分更細
關注點分離,前端偏向使用者,後端偏向系統本身
優點非常多,例舉一些比較明顯的
後端技術不再受侷限
後端可以根據不同的業務場景選擇合適的技術進行實現介面服務,技術和人一樣,什麼都能做的往往不是很精而長期專注某個領域的在處理特定問題的時候就比較又優勢,例如ruby
,python
,nodejs
等很多語言都有自己非常擅長的領域。
團隊扁平化
這和soa
的開發思路**的好處是一樣的,乙個專案20多個系統,如果沒有這種soa
是開發思路要想半年內開發完成,給你再多人都沒用。這就像過獨木橋一樣。因此前端分離某種意義上來說又給我們提供了一座大橋,相對的團隊更扁平化
整體開發效率提公升
大部分時間都只需要使用自己擅長的東西,前後端都很舒服,自然效率就會上來
缺點與其說缺點,實際上可以理解為是在實踐前後端分離的過程中需要解決的困難和難點
seo,這是首當其衝的,再不進行附加處理的情況下seo是無法滿足的
溝通成本增加,在功能溝通中多了前端這個角色,而且往往是產品、設計、後端多方溝通
seo,這個問題主要針對前端是web端情況。導致這個問題的根本是因為國內的搜尋引擎不會分析js**,因此在基於js實現的頁面就無法得到seo的支援,那麼也就是說必須給搜素引擎提高完整的html。解決這個問題並沒有太好的方式,主要還是2方面入手
使用一體化前端專門為爬蟲提供一套頁面,只做資料渲染,不做ui/ux
使用nodejs實現伺服器端渲染(為什麼選擇是nodejs?)
安全,傳統的cooike/session也是ok的,只是類似jwt這種認證的方式更好些
前後端分離,值得所有前端去嘗試,雖然累到最後你會自己責備自己:「我這是在幹嗎,明明只要寫寫js效果就完成工作的事情,為什麼現在天天加班,還到處找人溝通(產品設計不合理的時候需要溝通下,設計適配沒考慮的時候需要和他討論下,介面偷懶的時候還得看人家心情)」;但是,但是當你真的做了一段時間之後你會又更多的收穫,不僅僅是技術層面,更多的是技術設計層面的東西
前後端分離
關於前後端分離的一些好的文章推薦 前端框架 為什麼前後端分離 最直白的理解,我認為是因為在開發過程中,前端總是需要等待後端的環境搭建好之後,前端才能獲取相關資料,對於前端的開發影響很大,事實上前端並不關心後端的開發,那麼有沒有方法不讓後端影響前端的開發呢?其實後端提供的是什麼?乙個執行伺服器,乙個就...
前後端分離
在此說明 前後端分離有利於後端的快速開發,但並不利於搜尋引擎優化 seo 上圖能清晰的看到,使用前後端分離模式進行開發,瀏覽器會向伺服器傳送請求,伺服器會向瀏覽器傳送乙個類似框架的html,是固定的空殼,此時瀏覽器再使用ajax請求向後端伺服器索要資料,後端伺服器返回json字串給瀏覽器,從而使瀏覽...
前後端分離
前後端分離的好處 1 徹底解放前端 2 提高工作效率,分工更加明確。3 區域性效能提公升 4 降低維護成本 2 前後端分離的概念 後台只需要提供api介面,前端呼叫ajax實現資料呈現 3 場景和要求 4 web前端路由 就是根據url分配到對應的處理程式,原理和路由器原理相同,不同的請求位址會交給...