除非你的web應用程式是100%的客戶端程式碼,否則你就應該將前後端分開。人們常常會陷入這樣的陷阱:因為實際工作中經常需要做很大的調整,所以他們不應該花時間開發一個單獨的API和客戶端應用程序,或者他們認為他們的應用程序太小了,他們跟本不需要進行分離。
這種應用程式就是我稱之為一體化的應用程式。在這種應用程式中,你的業務邏輯和使用者介面是在伺服器上運行的實體。但是,讓web應用程式具有獨立的前端和後端有很多好處。
1.模組化
將應用程式分割為單獨的前後端應用,其中的一個好處就是模組化。由於應用程式邏輯與使用者介面完全分離,所以你的網頁應用程式可能已經有初步的模組化結構了。模組化在許多方面都有幫助,包括測試、可讀性和可維護性。
2.可重複使用性
使用一個單獨的API,你的應用程式邏輯可以被很多應用程式重複使用。這意味著你可以創建一個使用API的行動應用程序,或在一個完全獨立的應用程式中使用API,或允許其他人存取API(免費或付費)。
3.內容交付
由於客戶端應用程式是一個完全獨立的實體,你可以處理高階靜態檔案服務技術,而在需要將UI呈現為伺服器端的應用程式中,這些技術是不可用的。例如,現在可以使用NGINX和一些簡單的規則來將整個客戶端應用程式放在快取中。
4.回應性
「一體化」伺服器端應用程式的最大缺陷之一是回饋使用者回應性方面。在伺服器端應用程式中,使用者點擊按鈕來取得資料的這個動作,最常見的流程說明如下:
1. 使用者點擊一個按鈕來取得資料
2. 瀏覽器到伺服器傳送請求
3. 伺服器查詢資料庫
4. 應用程式對資料進行邏輯處理
5. 應用程式在展示層呈現資料
6. 伺服器將回應傳回至使用者
7.用戶在等待頁面載入之後,會看到回饋
8. 有了一個單獨的客戶端應用程序,你可以利用許多回饋機制,例如使用載入器或進度條。一旦你的請求返回(例如透過一個AJAX呼叫),你就可以更新你的展示。
5.版本控制
是的,我加了一個5。有了獨立的API和UI項目,你可以不用同時再更新或部署兩個應用程式了。如果在新部署的UI中出現了關鍵問題,你可以直接回滾它,而不用擔心會影響你在API專案中所做的改善效能的調整。
一個整體架構的優點是什麼?
這種分離的架構有很多優點。但是,使用整體架構也有一些好處。例如,如果你的應用程式包含在一個專案中,那麼你可以更快地完成開發工作。有更多的編碼涉及到單獨的使用者介面和API(但是許多框架使這更容易),這已經不是什麼秘密了。還有一些安全方面的好處。例如,實際上你根本沒有將API公開出來。有一些方法可以保護API,但是不公開這種做法會更好一點。如果你覺得還有其它的好處,你可以談談留下評論,讓我們來討論一下。
結論
對許多軟體開發人員來說,這似乎是一個很正常的選擇。然而有的人不是因為不熟悉這個概念,就是簡單的因為懶惰,所以根本就不採用這種架構。從個整體架構來說,可能不採用這種結構但是也很成功的例子很多。但是,我看到的更多的是分離API和UI以後會帶來很多好處。建議那些尚未嘗試過這個概念的開發人員可以試一試,並親自感受一下前後端分離帶來的好處。
以上是將Web APP UI和API分離的4個原因的詳細內容。更多資訊請關注PHP中文網其他相關文章!