摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實踐。然而一些歷史項目在從一體化設(shè)計轉(zhuǎn)向前后端分離的架構(gòu)時,不可避免的會遇到各種各樣的問題。搞了一個前后分離,需要分離部署。
探究 :深入聊聊前后分離架構(gòu)
前后分離,一直是一個相當(dāng)泛泛的問題,前后分離到底好不好?沒有絕對的對,沒有絕對的錯,業(yè)界就這個問題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點在于:分離當(dāng)然是好的,但是以什么樣的服務(wù)需要進行前后拆分?拆分到什么粒度?前后端如何配合?
截圖時間: 2018-08-30 - Github
我們隨意在 Github 輸入前后分離關(guān)鍵字,看下搜索的結(jié)果: 1K 的庫 11k 的 Issues 足以說明前后分離的趨勢,可以想象激烈程度,業(yè)界比較有名的討論:Web 前后端分離的意義大嗎?,值得一提的是:前排對于這個問題討論比較深刻的大部分都是全棧工程師。因為全棧對全局的了解相對比單純做前端、后端全局觀念更強一些,考慮的問題更多一些。
篩簡歷引發(fā)的思考和分析 后端職位的怪圈在公司的簡歷庫隨手截幾個局部的圖,近兩年面試過很多的 1-3 年 java 開發(fā)者,在篩選簡歷和面試過程中,也發(fā)現(xiàn)了幾個問題:相當(dāng)多一部分 javaer 技術(shù)棧上總是多了那么個 HTML ajax jquery bootstrap easyUi ,看起來很唐突,如果面試提到了前端技術(shù)棧,基本沒有能答的很好的,甚至有的人連 原型鏈 都不知道。這也是大部分人對全棧的誤解,其實我是不太感冒這樣的簡歷的,因為沒有什么亮點,技術(shù)棧不是寫的越多越好,總結(jié)起來:他們對前端的掌握很基礎(chǔ),勉強能勝任一些業(yè)務(wù)上的工作。那為什么這么多人都掌握一些前端技術(shù)呢?我分析可能有三點:
思考原因:培訓(xùn)機構(gòu)的興起,機械化的教學(xué)
求職者自身的興趣
一些公司的技術(shù)棧不全,對技術(shù)沒有追求,大部分用的幾年前的架構(gòu),前后業(yè)務(wù)耦合很大,市場缺口大
分析因為我也維護過幾個月的敏感項目,深有體會,只寫服務(wù)端的人是無法勝任這項工作的,
如果多數(shù)的 開發(fā)者 這樣的簡歷,可以推測:現(xiàn)在的 IT 行業(yè)中前后端糅雜一起的架構(gòu)還是存在、并且有一個量級,這導(dǎo)致他們不得不尋找一些懂得一點前端技術(shù)的人來開發(fā)項目,減少溝通的成本,加快項目的進度,這也就催生了很多所謂的 web 開發(fā)培訓(xùn)機構(gòu)。
你問我當(dāng)年維護的開心嗎?一會告訴你。什么是前后分離
前后端分離并不是什么新鮮事,到處都是前后端分離的實踐。然而一些歷史項目在從一體化 Web 設(shè)計轉(zhuǎn)向前后端分離的架構(gòu)時,不可避免的會遇到各種各樣的問題。由于層出不窮的問題,甚至?xí)袌F隊質(zhì)疑,一體化好好的,為什么要搞前后端分離?說到底,還是技術(shù)和思維方式?jīng)]轉(zhuǎn)變過來。
一體化模式其實在上一開篇:縱觀歷史演變 中已經(jīng)提到過了,不在贅述。
前后分離看起來應(yīng)該是這樣的:
前后分離就是在架構(gòu)層次上 構(gòu)建項目或?qū)ΜF(xiàn)有的項目 客戶端 服務(wù)端 分離開,減少前后端代碼的耦合度,大家一致認同的前后端分離的例子就是SPA(Single-page application) ,所有用到的展現(xiàn)數(shù)據(jù)都是后端通過 JSON 但不僅限于 JSON 的方式提供的,前端只管展現(xiàn),提供更好更絢的交互,后端只管提供更健壯的高可用服務(wù)。
千萬不要有先寫項目,寫完再重構(gòu)的想法,項目初期能一步到位最好,何必再去重構(gòu),然后不得已拋棄一些已經(jīng)寫完的組件、庫浪費人力呢?
前后分離解決了什么問題 每個人各盡其職好的開發(fā)者是可與不可求的,若尋找一個 優(yōu)秀的 full_stack 更是難,從校招進行培養(yǎng)也不太實際,招一個能力一般的程序員,技術(shù)驅(qū)動性比較差,甚至拖慢產(chǎn)品迭代。分離開來我們就可以專注于 前端、 服務(wù)端 領(lǐng)域去尋找專業(yè)的人才。
解耦前端后端代碼大量耦合代碼看起來是這樣的:
看看簡單例子吧:
//(node端處理) if (is_weixin()) { init([ "api", "image", "xxx", "...", ], function () { <%- doSomeGloble %> }); } else { } //接收node端一些數(shù)據(jù) let blogs = <%- blogs %>; let users = <%- users %>;
這還不是 JAVA 模板 而是相對輕量、優(yōu)雅的 NODE 的 EJS 渲染的,這還好,我見過更令人難受的代碼,經(jīng)常為了一個問題要回頭看 N 多代碼,這里就不寫了。
那么前后分離如何讓它們解耦變得更清晰?后面會結(jié)合服務(wù)端統(tǒng)一補充。
什么項目不適合前后分離 blog、文檔你說你搭建一個博客、 API 文檔系統(tǒng) 這種小項目,一個人就可以開發(fā)。搞了一個前后分離,需要分離部署。又增加了 SEO 的復(fù)雜度,增加了開發(fā)的周期、增加了用戶部署的難度,何必呢?當(dāng)然,如果只是技術(shù)實踐的一種學(xué)習(xí)方式,還是歡迎的。
前后分離帶來的問題,如何解決? 溝通成本問題前端妹子:哥,獲取全部博客調(diào)哪個接口?哦,昨天不是發(fā)你文件了嗎
前端妹子:我找不到了
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/97304.html
摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實踐。然而一些歷史項目在從一體化設(shè)計轉(zhuǎn)向前后端分離的架構(gòu)時,不可避免的會遇到各種各樣的問題。搞了一個前后分離,需要分離部署。 探究 :深入聊聊前后分離架構(gòu) 前后分離,一直是一個相當(dāng)泛泛的問題,前后分離到底好不好?沒有絕對的對,沒有絕對的錯,業(yè)界就這個問題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點在于:分離當(dāng)然是好的,但是以什么樣的服...
摘要:什么是前后分離前后端分離并不是什么新鮮事,到處都是前后端分離的實踐。然而一些歷史項目在從一體化設(shè)計轉(zhuǎn)向前后端分離的架構(gòu)時,不可避免的會遇到各種各樣的問題。搞了一個前后分離,需要分離部署。 探究 :深入聊聊前后分離架構(gòu) 前后分離,一直是一個相當(dāng)泛泛的問題,前后分離到底好不好?沒有絕對的對,沒有絕對的錯,業(yè)界就這個問題已經(jīng)激烈的探討幾年了.出現(xiàn)討論的點在于:分離當(dāng)然是好的,但是以什么樣的服...
摘要:前端基礎(chǔ)架構(gòu)和硬核介紹技術(shù)棧的選擇首先我們構(gòu)建前端架構(gòu)需要對前端生態(tài)圈有一切了解,并且最好帶有一定的技術(shù)前瞻性,好的技術(shù)架構(gòu)可能日后會方便的擴展,減少重構(gòu)的次數(shù),即使重構(gòu)也不需要大動干戈,我通常選型技術(shù)棧會參考以下三點一提出自身業(yè)務(wù)的需求是 # 前端基礎(chǔ)架構(gòu)和硬核介紹 showImg(https://segmentfault.com/img/remote/146000001626972...
摘要:前端基礎(chǔ)架構(gòu)和硬核介紹技術(shù)棧的選擇首先我們構(gòu)建前端架構(gòu)需要對前端生態(tài)圈有一切了解,并且最好帶有一定的技術(shù)前瞻性,好的技術(shù)架構(gòu)可能日后會方便的擴展,減少重構(gòu)的次數(shù),即使重構(gòu)也不需要大動干戈,我通常選型技術(shù)棧會參考以下三點一提出自身業(yè)務(wù)的需求是 # 前端基礎(chǔ)架構(gòu)和硬核介紹 showImg(https://segmentfault.com/img/remote/146000001626972...
摘要:前端準(zhǔn)備前端了解過關(guān)了嗎前端基礎(chǔ)架構(gòu)和硬核介紹技術(shù)棧的選擇首先我們構(gòu)建前端架構(gòu)需要對前端生態(tài)圈有一切了解,并且最好帶有一定的技術(shù)前瞻性,好的技術(shù)架構(gòu)可能日后會方便的擴展,減少重構(gòu)的次數(shù),即使重構(gòu)也不需要大動干戈,我通常選型技術(shù)棧會參考以下三 # 前端準(zhǔn)備 :前端了解過關(guān)了嗎?前端基礎(chǔ)架構(gòu)和硬核介紹 showImg(https://segmentfault.com/img/remote/...
閱讀 2570·2023-04-25 18:13
閱讀 793·2021-11-22 12:10
閱讀 2983·2021-11-22 11:57
閱讀 2148·2021-11-19 11:26
閱讀 2182·2021-09-22 15:40
閱讀 1473·2021-09-03 10:28
閱讀 2711·2019-08-30 15:53
閱讀 1958·2019-08-30 15:44