Photo by Jordan Harrison on Unsplash
在提到網頁開發的時候,常常會提到前端工程師跟後端工程師。前端聽起來也許比較好理解,大概就像是前台、使用者介面吧?多少可以想像的到。但後端呢?後面是指哪邊?螢幕的後面嗎?
當然不是XD
為了釐清大家的一些疑惑,本篇會聊聊前、後端的區別,並針對後端的部分多補充一些資訊,希望對大家有幫助。
前端?後端?
一般人上網的時候,不論是在電腦或是手機上,通常會藉由瀏覽器來瀏覽網頁,像是Chrome、IE、Edge、FireFox、Safari等。
那非常粗略簡單的來說,前端指的就是,使用者在瀏覽器上所看到的一切,都可以稱為網頁前端,像是圖形介面、漂亮的動畫,滑鼠點了會開啟的menu、或是可以輸入帳號密碼的區塊等等。
那所以反過來說,使用者看不到的地方,就是網頁後端嗎?大致上來說,是這樣沒錯XD
所以問題就在於,使用者看不到的地方是指什麼?其實也沒有那麼神秘,就是一些資料跟指令的傳遞、跟背後的動作處理,舉例來說:
- 使用者在購物網站上,按下購買結帳的按鈕的時候,資料會透過網路被送到後端,藉此告訴後端,使用者買了什麼,要用什麼方式付款。當後端接收到這些資料後,就會開始進行對應的處理,像是自動化地通知倉儲人員出貨、或去跟銀行收取刷卡的款項等等。
- 使用者進到購物網站上,查看訂單資訊的時候,後端會根據訂單的編號,從資料庫中整理出訂單的資訊後,傳送給前端處理顯示,像是商品名稱、收件人地址、還有商品的配送狀態等等。
- 在臉書上留言、發表文章後,文章內容透過網路被傳送到臉書的後端儲存下來。當其他人在別台裝置上使用臉書的時候,臉書的後端就會把你的文章送到其他人的裝置上,讓那些裝置上的前端把這些文章顯示出來給其他人看。
- 或是在訂房網站按下預定按鈕,後端幫使用者保留房間,並通知旅館進行相關的處理等等。
- ...
也就是說,使用者在瀏覽器上,有很多看不到的動作,都是透過後端默默替使用者完成的。那後端到底在哪裡?其實後端對一個網站而言,就是所謂的伺服器,就是遠方的某一台電腦,跟使用者的瀏覽器透過網路連接在一起。當資料、指令被送往伺服器後,會透過工程師寫的程式碼或其他機制,來作出對應的處理。
因此,我這邊我很粗顯地定義一下:
- 後端:在伺服器上做的事情。
- 前端:在瀏覽器上做的事情。
當代在網際網路架構下運行的應用程式,其實就是伺服器跟瀏覽器之間緊密互動而形成的一個生態系。一個網站如果缺少了後端、也就是伺服器的時候,網站是沒辦法正常運作的,可能頁面會缺少必要的資訊,或是點擊了頁面上的某些按鈕會沒有反應。前端也會因為沒有辦法從後端拿到前端所需要的資料,而沒辦法做出正確的顯示。
雖然有些比較簡單或是特殊的網站,是以前端為主,但是大部分情況下前後端必須要緊密配合,才能提供一個完整的網站服務。
後端工程師
那既然本篇的標題是後端,那我們接著就來針對後端工程師來多聊一些吧。
所謂的後端工程師,其實就是負責處理後端事情的人(廢話)。如果要更明確的定義後端工程師的工作內容會像是:
在伺服器上接收前端傳來的資料,進行對應的判斷處理後,傳送適當的資料到前端。
聽起來有點無聊?但其實所謂的進行對應的判斷處理,包含很多事情:
- 使用者輸入得帳號密碼對不對?
- 使用者有沒有權限使用這個功能?
- 這個商品實際上的庫存還夠不夠?
- 這筆訂單真的已經付款了嗎?
- 這張優惠券還能使用嗎?折扣後的金額是多少?
- ...
對一個電商網站的後端工程師而言,平常每天的工作內容,大致上就是在處理類似這樣的商業邏輯。
同時,為了滿足這些商業邏輯的需求,後端工程師會需要把很多外部元件整合起來,像是:
- 儲存所有使用者資料的資料庫。
- 儲存使用者最近看過的商品資料的快取。
- 整合銀行或其他公司的信用卡支付系統。
- 發送app推播的第三方服務。
- ...
後端工程師透過整合這些元件,撰寫適當的程式碼,來進行判斷或運算,藉此滿足使用者的商業需求。
雖然這些對使用者來說都是看不到的,可是使用者卻感受得到網頁的反應速度,而當資料有誤的時候,使用者也會知道。
因此知道如何撰寫正確的程式只是基本,曉得在各種情境在,如何搭配各種不同的工具、元件,來滿足使用者的需求,也是後端工程師重要的能力。
除了處理這些商業邏輯,就後端工程師的中長期職涯規劃而言,可能會包含模組、系統之間的互動方式如何設計,像是如何整合這些各式各樣的模組:
- 會員系統
- 帳務系統
- 購物系統
- 優惠券系統
- ...
會需要考量到的層面會更多,更廣泛。包含伺服器的效能瓶頸、網路連線的限制等等,要想出好的解法解決這些問題,也算是一個非常有挑戰性的工作。
雖然聽起來後端的工作很多,但就像前端還可以區分成UI、UX、前端工程師等等,在大型網站系統上,後端也是會分工的,像是會有負責資料庫管理的資料庫工程師,或是負責管理主機跟網路的系統工程師等等其他同仁,這些人可以被稱為廣義的後端,他們會協助處理、維運整個網站, 讓後端工程師可以更專注在商業邏輯上,而不用擔心系統的運作狀況。
小結
以上就是針對前、後端,以及後端工程師簡單的說明,希望對大家有幫助囉。