前端和后端是計算機行業最常用的兩個術語;在某種程度上,它們成了流行語。它們決定了你作為軟件開發人員的工作類型、你使用的技術以及你得到的報酬。
那么,讓我們來談談這兩個術語之間的區別,它們為什么首先存在,以及你在軟件開發職業生涯中可以采取的不同路徑。
站點呈現
用外行的話說,站點呈現意味著生成或呈現HTML輸出。HTML是web開發人員用來創建網頁的標記語言。據說站點呈現可以在服務器端或客戶端級別進行,那么這意味著什么呢?值得注意的是,前端和客戶端是同義詞,后端和服務器端也是如此。
客戶端呈現(前端)
在更現代的時代,出現了一種新的站點渲染形式,稱為客戶端渲染或前端開發。
通過客戶端呈現,內容的呈現在你的計算機中進行,而不是使用事實上的web語言JavaScript在遠程web服務器中進行。實際上,這意味著服務器只需為原始web應用程序提供服務,瀏覽器將負責以最終形式HTML呈現此應用程序。它還意味著創建網頁所涉及的一些邏輯,特別是負責處理如何在屏幕上向用戶呈現事物的邏輯(稱為呈現邏輯),在客戶端進行處理。
隨著Angular、React和Vue等JavaScript庫的出現,客戶端呈現變得越來越流行。
服務器端呈現(后端)
直到很久以前,服務器端渲染或后端web開發才成為創建網站和web應用程序的實際方式。你訪問頁面,發送內容請求,服務器處理該請求并創建一個響應,該響應將發送回瀏覽器。
當站點呈現服務器端時,創建web瀏覽器可以理解的HTML頁面所涉及的所有過程都在承載該網站或web應用程序的遠程服務器上處理。這包括查詢數據庫中的信息和處理web應用程序所需的任何邏輯。
遠程服務器工作繁忙時,你的web瀏覽器處于空閑狀態,等待服務器完成處理請求和發送響應。當收到響應時,web瀏覽器將對其進行解釋并在屏幕上顯示內容。
同構呈現
也稱為通用呈現,是現代web開發中使用的一種新技術。同構呈現背后的思想是,在第一次加載頁面時在服務器端呈現使用JavaScript框架(如Angular、React或View)開發的web應用程序,之后在客戶端呈現。更為復雜的是,還有另一種形式的呈現稱為預呈現,它在編譯時呈現內容。
在何處呈現站點通常取決于應用程序的類型和應用程序統計信息,并且會因團隊和企業而異。
什么是前端開發?
現在我們了解了不同類型的站點呈現方法,更容易理解前端開發是創建在客戶端呈現的站點和web應用程序的藝術。
用于前端開發的技術
雖然有許多不同類型的技術和堆棧,但大多數前端web開發人員使用HTML、CSS和JavaScript,它們是web事實上的構建塊,以及客戶端框架,如Angular、React、Stencil和Vue。不過,并非所有事情都發生在前端。客戶端呈現的應用程序仍然依賴于在后端遠程服務器或云上運行的服務和API。
什么是前端工作?
網頁設計師:你猜對了,網頁設計師設計網站。不過,網頁設計師的頭銜相當寬泛。網頁設計師可能只是在Photoshop或Fireworks之類的程序中設計網站的人,而且永遠不會觸碰代碼。但在另一個地方,網頁設計師可以在Photoshop中完成所有的設計組合,然后負責創建所有的HTML和CSS(有時甚至是JavaScript)來配合它。
用戶界面(UI)設計器:這基本上是一個可視化設計器,通常側重于設計。他們通常不參與設計的實現,但他們可能知道輕松的HTML和CSS,這樣他們就可以更有效地與前端開發人員交流他們的想法。
用戶體驗(UX)設計師:UX設計師在前端工作,研究人們如何使用網站。然后,他們通過大量測試進行更改。
前端開發人員:也稱為前端設計師,他們可以創建一個沒有任何后端開發的站點。他們在沒有web開發人員或使用后端的情況下創建的站點是靜態站點。靜態站點類似于餐廳或發廊的站點。它不需要在數據庫中存儲任何信息。頁面幾乎總是保持不變,除非是時候重新設計了。前端開發人員可能需要掌握測試,并且精通HTML、CSS和JavaScript。此人可能有也可能沒有在設計程序中創建設計的經驗。這個標題的另一個版本是前端工程師。使用特定前端語言(如JavaScript developer)的人也被視為前端開發人員。
什么是后端開發?
前端開發是讓站點和web應用程序在客戶端呈現,而后端開發則是讓這些應用程序在服務器端呈現。但它比這要復雜一點。雖然前面的說法是正確的,但后端開發人員也創建處理業務邏輯和訪問其他資源(如數據庫、文件服務器、云服務等)的服務。這些服務是任何應用程序的主干,不僅可以由服務器端渲染應用程序訪問和使用,還可以從客戶端渲染應用程序訪問和使用。
用于后端開發的技術
當后端開發人員創建在服務器端呈現的應用程序時,他們使用與前端開發人員相同的構建塊:HTML、CSS和JavaScript。
后端開發人員還使用軟件堆棧,包括操作系統、web服務器、框架、語言、編程API等。這些堆棧中的框架、語言和編程API用于呈現服務器端站點和web應用程序,并創建其他應用程序可以使用的服務。
什么是全棧開發?
作為一名完整的堆棧開發人員,您可以同時完成前后端兩項工作。全棧開發人員可以創建同時在客戶端(前端)和服務器端(后端)呈現的站點和web應用程序。
他們還創建服務、組件和API來封裝業務邏輯、解決特定的業務問題和訪問數據庫、文件服務器、云服務等基礎設施。他們的工作與完整的堆棧,這是最好的兩個世界。