1. 后端開發概念解析
1.1. 什么是服務器,后端服務
1.1.1. 服務器
服務器是一種提供服務的計算機系統,它可以接收、處理和響應來自其他計算機系統(客戶端)的請求。服務器主要用于存儲、處理和傳輸數據,以便客戶端可以通過網絡訪問這些數據或服務。服務器可以是硬件設備,也可以是運行在硬件上的軟件。
從硬件角度來看,服務器以機器的形式存在各個機房類似我們的PC電腦,實際是一個硬件設備。
從軟件角度來看,服務器是運行在硬件設備上的軟件,我們通過代碼寫后端服務,接收請求,處理邏輯:
- nginx應用服務器
- 類似Flask的程序邏輯服務器
1.1.2. 后端服務
在計算機科學中,后端服務通常是指應用程序的后端部分,負責處理業務邏輯、與數據庫交互、執行算法等。后端服務通常運行在服務器上,提供數據和功能給客戶端。它可以通過不同的協議(例如,HTTP、WebSocket)與前端或其他服務通信。
關于后端服務的一些關鍵概念:
- 業務邏輯: 后端服務包含應用程序的業務邏輯,負責處理用戶請求、執行特定的功能和操作。
- 數據庫交互: 后端服務通常需要與數據庫進行交互,包括讀取和寫入數據,以及執行數據庫查詢和更新操作。
- API(應用程序接口): 后端服務通過API與前端或其他服務通信。API定義了可用于訪問后端功能和數據的協議和終點。
- 安全性: 后端服務通常需要實施安全措施,以確保數據的機密性和完整性。這可能包括身份驗證、授權、數據加密等。
- 性能和可伸縮性: 后端服務需要具備足夠的性能和可伸縮性,以處理大量的并發請求,并在需要時進行水平擴展。
- 服務端技術: 后端服務可以使用不同的編程語言和框架實現,如Java(Spring Boot)、Python(Django、Flask)、Node.js、Ruby(Ruby on Rails)等。
總的來說,后端服務是構成分布式應用架構中的一部分,通過處理業務邏輯和數據管理,為前端或其他客戶端提供服務。在現代應用程序中,通常采用前后端分離的架構,使得前端和后端能夠獨立開發和部署。我們學的后端技術,就是為了開發、部署、維護后端服務
1.2. 正式工作中的不同環境
在軟件開發中,尤其是后端程序開發,通常會涉及多個不同的環境,以便進行開發、測試和部署。以下是一些常見的后端程序環境:
1. 開發環境(Development Environment):
用途:用于開發和調試代碼。
特點:通常配置為開發人員本地機器上的環境,包含開發所需的所有工具、庫和服務。
2. 測試環境(Testing Environment):
用途:用于進行單元測試、集成測試和系統測試。
特點:盡可能模擬生產環境,但通常規模較小,用于檢測和解決代碼中的問題。
3. 預發布環境(Staging Environment):
用途:用于測試部署到生產環境之前的最終版本。
特點:模擬生產環境,并使用生產環境相似的硬件和軟件配置。
4. 生產環境(Production Environment):
用途:運行實際的生產應用程序,提供服務給最終用戶。
特點:具有高可用性、性能優化和安全性,通常包括負載均衡、故障恢復機制等。
這些環境的設置有助于確保開發人員能夠在相對隔離的環境中進行工作,同時在生產環境之前檢測和解決潛在的問題。這也有助于提高軟件質量、可靠性和可維護性。
1.3. 前后端交互流程
在 Web 開發中,前端和后端是通過 HTTP 協議進行通信的。前端負責展示用戶界面,而后端負責處理業務邏輯、與數據庫交互以及提供數據和服務。以下是它們之間協作的一般過程:
1. 前端請求(Request):
- 用戶在瀏覽器中輸入 URL 或者與前端頁面進行交互,觸發了一個 HTTP 請求。
- 請求中包含了與服務端通信所需的信息,如參數、頭部信息等。
2. 后端處理請求:
- 服務器接收到請求后,后端應用程序開始處理它。
- 后端應用程序執行業務邏輯,可能包括從數據庫中檢索數據、驗證用戶身份、計算等。
3. 數據庫交互:
- 如果業務邏輯需要與數據庫交互,后端會執行相應的數據庫查詢或更新操作。
4. 生成響應(Response):
- 后端應用程序生成一個 HTTP 響應,其中包含了處理結果、數據等。
- 響應通常是一個包含數據的 JSON 對象,也可以包括其他資源如圖片、文件等。
5. 前端接收響應:
- 瀏覽器接收到后端的響應后,前端開始解析響應,提取出所需的數據。
6. 更新用戶界面:
- 前端使用從后端獲取的數據更新用戶界面,可能涉及到更新頁面內容、刷新列表、顯示錯誤消息等。
7. 用戶交互:
- 用戶與前端界面進行交互,可能觸發新的請求,形成新的請求-響應循環。
這種前后端協作的方式被稱為前后端分離(Frontend-Backend Separation)或前后端分離架構。在這種架構中,前端和后端是獨立的系統,通過定義好的接口進行通信。這使得可以使用不同的技術棧來開發前端和后端,同時也更容易實現代碼的重用和維護。
常見的前后端通信方式包括使用 RESTful API、GraphQL 等。RESTful API 是一種使用 HTTP 請求進行通信的方式,而 GraphQL 則允許前端請求指定其需要的數據結構。
1.4. 前后端開發流程
假如要開發一個根據商品名稱查詢商品信息的功能(比如網頁搜索商品),這用HTTP協議舉例。
1. 前后端定義好接口傳輸的協議格式,一般都是json格式。
2. 定義好HTTP請求方法、接口名字、前端傳參、后端返回的參數。
確定HTTP請求方法:
因為是查詢功能,根據RESTful url的規定,HTTP請求方法是請求資源的動作,所以用GET請求。
接口名字:
起一個有意義的名字,這里是根據商品名稱查詢商品信息,因此接口路由起名叫 /search;
當前用 /query_by_name 也可以,合理即可;
前端將把請求發給這url,進行HTTP請求。
前端請求協議 request:
查詢商品,那么我們要傳入商品名稱;
定義好參數名稱,和參數value的數據結構,這里是string。
后端響應協議 response:
查詢的結果可能如上圖所示,這里在開發前應該找需求方確認好需求,心里有預期
需要給前端的信息:
我們可能只有需要知道商品的價格、名稱、描述、店家、評價數目等。
搜索會搜索出很多商品信息,所以應該返回Json數組
開發:確認協議后前后端各自開發,互不影響
自測:根據協議,使用postman等工具,構造數據,測試樣例進行自測,保證開發的后端功能正確,并且不影響其他接口
自測方式:使用postman等工具
本地多打日志觀察數據正確性
前后端聯調:
自測確認沒問題了,和前端同學一起聯調,實際上就是前端真正請求你后端接口的數據,觀察前后端在真正請求時候的正確與否
如果聯調有問題,再及時修改
提交代碼,項目部署上線