將Web APP UI與API分離的4個原因
發(fā)表時間:2024-05-14 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]除非你的web應(yīng)用程序是100%的客戶端代碼,否則你就應(yīng)該將前后端分離開來。人們常常會陷入這樣的陷阱:因為實際工作中經(jīng)常需要做很大的調(diào)整,所以他們不應(yīng)該花時間開發(fā)一個單獨的API和客戶端應(yīng)用程序,或者他們認(rèn)為他們的應(yīng)用程序太小了,他們跟本不需要進(jìn)行分離。這種應(yīng)用就是我稱之為一體化的應(yīng)用程序。在這種...
除非你的web應(yīng)用程序是100%的客戶端代碼,否則你就應(yīng)該將前后端分離開來。人們常常會陷入這樣的陷阱:因為實際工作中經(jīng)常需要做很大的調(diào)整,所以他們不應(yīng)該花時間開發(fā)一個單獨的API和客戶端應(yīng)用程序,或者他們認(rèn)為他們的應(yīng)用程序太小了,他們跟本不需要進(jìn)行分離。
這種應(yīng)用就是我稱之為一體化的應(yīng)用程序。在這種應(yīng)用程序中,你的業(yè)務(wù)邏輯和用戶界面是在服務(wù)器上運行的一個實體。但是,讓web應(yīng)用程序具有獨立的前端和后端有很多好處。
1.模塊化
將應(yīng)用劃分為單獨的前后端應(yīng)用,其中的一個好處就是模塊化。由于應(yīng)用程序邏輯與用戶界面完全分離,所以你的Web應(yīng)用程序可能已經(jīng)有初步的模塊化結(jié)構(gòu)了。模塊化在許多方面都有幫助,包括測試、可讀性和可維護(hù)性。
2.可復(fù)用性
使用一個單獨的API,你的應(yīng)用程序邏輯可以被很多應(yīng)用程序復(fù)用。這意味著你可以創(chuàng)建一個使用API的移動應(yīng)用程序,或者在一個完全獨立的應(yīng)用程序中使用API,或者允許其他人訪問API(免費或付費)。
3.內(nèi)容交付
由于客戶端應(yīng)用程序是一個完全獨立的實體,你可以處理高級靜態(tài)文件服務(wù)技術(shù),而在需要將UI呈現(xiàn)為服務(wù)器端的應(yīng)用程序中,這些技術(shù)是不可用的。例如,現(xiàn)在可以使用NGINX和一些簡單的規(guī)則來將整個客戶端應(yīng)用程序放在緩存中。
4.響應(yīng)性
“一體化”服務(wù)器端應(yīng)用程序的最大缺陷之一是反饋用戶響應(yīng)性方面。在服務(wù)器端應(yīng)用程序中,用戶單擊按鈕來獲取數(shù)據(jù)的這個動作,最常見的流程描述如下:
1. 用戶單擊一個按鈕來獲取數(shù)據(jù)
2. 瀏覽器向服務(wù)器發(fā)送請求
3. 服務(wù)器查詢數(shù)據(jù)庫
4. 應(yīng)用程序?qū)?shù)據(jù)進(jìn)行邏輯處理
5. 應(yīng)用程序在展示層呈現(xiàn)數(shù)據(jù)
6. 服務(wù)器將響應(yīng)返回給用戶
7. 用戶在等待頁面加載之后,會看到反饋
8. 有了一個單獨的客戶端應(yīng)用程序,你可以利用許多反饋機制,例如使用加載器或進(jìn)度條。一旦你的請求返回(例如通過一個AJAX調(diào)用),你就可以更新你的展示。
5.版本控制
是的,我加了一個5。有了獨立的API和UI項目,你可以不用同時再更新或部署兩個應(yīng)用了。如果在新部署的UI中出現(xiàn)了關(guān)鍵問題,你可以直接回滾它,而不用擔(dān)心會影響你在API項目中所做的改善性能的調(diào)整。
一個整體架構(gòu)的優(yōu)點是什么?
這種分離的架構(gòu)有很多優(yōu)點。但是,使用整體架構(gòu)也有一些好處。例如,如果你的應(yīng)用程序包含在一個項目中,那么你可以更快地完成開發(fā)工作。有更多的編碼涉及到單獨的用戶界面和API(但是許多框架使這更容易),這已經(jīng)不是什么秘密了。還有一些安全方面的好處。例如,實際上你根本沒有將API公開出來。有一些方法可以保護(hù)API,但是不公開這種做法會更好一點。如果你覺得還有其它的好處,你可以談?wù)劻粝略u論,讓我們來討論一下。
結(jié)論
對許多軟件開發(fā)人員來說,這似乎是一個很正常的選擇。然而有的人要么因為不熟悉這個概念,要么就是簡單的因為懶惰,所以他們根本就不采用這種架構(gòu)。從個整體架構(gòu)來說,可能不采用這種結(jié)構(gòu)但是也很成功的例子有很多。但是,我看到的更多的是分離API和UI以后會帶來很多好處。建議那些尚未嘗試過這個概念的開發(fā)人員可以試一試,親自感受一下前后端分離帶來的好處。
以上就是將Web APP UI和API分離的4個原因的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
網(wǎng)站建設(shè)是一個廣義的術(shù)語,涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。