首頁 >常見問題 >程式設計師前端、後端、全端是什麼意思

程式設計師前端、後端、全端是什麼意思

藏色散人
藏色散人轉載
2021-07-30 11:58:413874瀏覽

前端程式設計師,後端程式設計師,全端程式設計師分別都是什麼?找工作到底選前端還是後端?為什麼美國很多都是全站程式設計師呢?帶著這些疑問,本文來給大家一一解答,保證讓你對這些概念搞的明明白白!

原文網址:https://www.bilibili.com/video/BV1DV411B7v5/

首先什麼是前端開發?

簡單來說,前端開發就是開發網頁上的“內容展示”,和與用戶的互動;

這裡的“內容展示”:指的是你在網頁上能看到的,圖片文字、影片、數字等資訊。

那麼與使用者的互動指的就是,使用者在頁面上透過點擊按鈕、輸入文字等動作對網站提供資料輸入,然後前端回應使用者的輸入。

例如更新頁面上的內容,舉一個更具​​體的例子就是,如果你在我的文章下面進行評論,那麼頁面對你評論這個動作就會做出回應,例如會在後台資料庫裡面,把我的評論量加一。

並且在頁面上顯示文章評論後的數量等,如下圖。

程式設計師前端、後端、全端是什麼意思

前端開發用到的基礎技術就是htmlcss javascript,分別用來控制網頁裡面的內容視覺效果使用者互動

以下分別簡單介紹一下。

html 並不是一門程式語言,他是一種用來定義結構化資料的標記語言,你在瀏覽器上看到的網頁,其實就對應一個html 文件,這個文件裡裝的就是html 程式碼,而瀏覽器的職責之一,就是透過你輸入的網址,從網站上下載對應的html 程式碼,並且把程式碼渲染成你肉眼看到的樣子。

那麼,前端工程師的工作內容之一,就是寫html程式碼,或是使用一些技術來為頁面動態的產生html 程式碼,任何一個網頁,你都可以透過瀏覽器的開發者工具,看到他對應的html 代碼。

如果你仔細查看一段html 程式碼,你會發現他其實就是由一堆各種類型的尖括號標籤組合嵌套而成的,例如某影片在youtube 頁面上,影片的標題,對應於程式碼裡面一個title類型的標籤,那影片的播放器就對應到一個video類型的標籤;其頭像圖片,對應到一個嵌套在超連結標籤裡的image 標籤;而評論裡的文字又對應到一個yt formatted-string 類型的標籤,這裡的yt 應該只帶的是youtube,那麼這個標籤,應該就是youtube 自定義的標籤,然後css 的程式碼,則是用來指定每個html 的標籤,以什麼樣的外觀和風格來展示,例如長寬、位置、顏色居中還是分散字體顯示屬性等等。

css的程式碼也是被瀏覽器讀入,並且渲染成你肉眼所看到的效果,有時候pm會想把頁裡面一個按鈕的大小和顏色進行微調,而這個微調就是由前端工程師去改動;這個按鈕對應的css程式碼來實現的,前端開發中真正編程的部分是javascript,網頁如何與用戶交互,如何與後端交互,都是透過javascript 的程式碼實現的,就像html程式碼和css程式碼是被瀏覽器執行一樣,頁裡面的javascript 程式碼也是交給瀏覽器來執行。

這裡插一句,javascrip與java並沒有什麼關係,兩者之間的特性差的很遠,這就好比是印度跟印尼差的很遠,熊貓跟小熊貓差的很遠,雷峰和雷峰塔差的很遠。

說回正題,大家在寫程式的時候,不管用什麼語言,通常都不會重複的造輪子,而是會呼叫該語言現成的library來實現一些常見的功能,讓開發過程更有效率。

對於前端javascript的開發,react是目前比較流行的library,也是我在工作中,做前端的時候會用到的。 react這個library,不僅可以用來實現與用戶的交互邏輯和事件響應,事實上頁面上幾乎全部的html 代碼,都可以透過react來生成,這種在瀏覽器端生成html代碼進行渲染的方式,叫做client-side rendering,與之相反的就是service-side rendering,也就是頁面完整的html程式碼,是全部由網站的前端伺服器產生好了之後,再發給瀏覽器的。

這裡提到了前端伺服器,就順便說一下,前端伺服器的邏輯,可以透過任何程式語言來實現,例如java、javascript、php 甚至是Scheme,只要伺服器的行為遵守http 的協定就可以了,client-side renderingsilver-side rendering兩種方式各有優缺點,因此前段工程是在開發網頁的時候,需要結合實際情況,選擇最合適的頁面渲染方式;

除了react,另外一種比較流行的javascript library就是vue#,在國內用的比較多,如果你去查看b 站的html代碼,你會發現b 站的前端也用到了vue。

以上介紹的這些,就是前端開發的一些常規技術,html、瀏覽器和前端伺服器的工作原理,一般會在學校裡面的《電腦網路》課裡面介紹,css、javascript、react就主要靠自學了。

 javascript和react學習課程有興趣的可以去看《javascript高級教程》哦!

講完了前端,現在來講講後端。

什麼是後端開發呢?

相當一部分的後端開發工作,就是開發資料存取服務,使得前端可以透過呼叫後端的服務,來對資料進行增刪查改,也就是大家常聽到的curd,從而實現前端對使用者的請求回應。

例如你在一個大型網站註冊的時候,這個網站的前端就會呼叫他的後端,把你的使用者資訊寫入資料庫。一個後端服務其實不限於只被前端調用,他還可以被 mobile app 調用,還可以被其他的後端服務調用。

類比一下,前端往往需要透過呼叫後端服務,來完成對使用者的請求回應,而後端服務往往需要透過查詢資料庫。

來完成對前端請求的回應,從這個類比你可以看出,前端和後端的共通性,都是透過呼叫一個比自己靠後的服務,來對前方客戶的請求進行回應,後端工程師的工作範疇很廣,幾個比較常見的就是,設計後端服務的api,設計後端服務的架構圖,設計後端服務的資料庫且程式碼實現後端服務的業務邏輯,同時你還需要保證你設計的後端服務,highly available,也就是訪問量很大的時候仍然不宕機,並且對客戶請求的響應時間很短,或者說吞吐量高,單位時間內能處理的請求數量多。

如果要從頭建立一個新的後端服務,那麼整個過程需要進行大量的系統設計,也就是後端工程師面試的時候,會考到了System Design,做System Design非常考察平時知識的積累。

那麼後端工程師平時一般需要與哪些技術和工具打交道呢?

首先就是後端伺服器了,和前端伺服器一樣,後端伺服器也可以由幾乎任何一種程式語言實現,只要能把正確的資料,傳回給呼叫者就可以了。

主流的程式語言,也有各自流行的Web Framework,也就是現成的輪子,來幫助大家站在框架的肩膀上,快速的實現一個後端服務,比如基於PHP的Web Framework有thinkphplaravel(插入一個「PHP是世界上最好的語言」),基於javascript 有express,基於 java 的Web Framework有Spring BootDrop wizard,以及基於python有flask這幾個Web Framework,每一個都有大廠在使用,不同的公司具體選擇哪個框架,某種程度上,是看創始的程式設計師最喜歡哪種語言,哪種框架用的最6,還有一些後端服務的框架,可以支援你用多種程式語言來開發,而不是綁在一門特定的語言上。

說了這麼多的語言和框架,如果你想去某個公司做後端開發,一定需要對他們使用的語言和框架很熟練嗎?

一般來講不會,我找工作的時候看到職位描述,裡面有我不會的語言和框架,也無所謂,照樣投,對公司來說你會其中一部分就夠了,很多東西都是在工作裡面學的,而且事實上,兩週內上手一門新的程式語言,是一名職業程式設計師的基本素養,除了開發和維護後端伺服器,後端工程師還會花大量的時間,在資料庫上,不管是為你的後端服務建立資料庫,或是為資料庫的效能調優或是分析裡面的資料。

目前最常使用到的資料庫是關係型資料庫,例如在工業界被廣泛使用的MySQLPostgreSQL

如何設計一個關聯式資料庫,如何使用SQL query來存取數據,以及如何依靠index 來為數據查詢加速,這些知識點,在學校的資料庫課程裡面也會介紹的,然而學校資料庫課程裡面介紹的比較少,但是近年來用的又越來越多的是非關係型的資料庫,也就是大家常說的No-SQL資料庫。

例如基於JSON文件的MongoDB,例如基於LSM treeLevelDB,這些資料庫在某些特定的情況下,可能會比關係型資料庫更適合你的業務需求,

大家一般也是在工作中去學習他的原理和特性,資料庫往往是一個後端系統裡面的性能瓶頸,也就是最慢的一環,因此後端工程師在進行系統設計的時候,會用很多辦法來使得後端的性能,比如響應的時間,盡量的少被數據庫拖後腿,比如使用MemCached這種緩存系統,來加速讀取數據的速度,例如用Kafaka把資料寫入非同步化,提升後端寫資料的效能,後端開發大致介紹到這裡。

後端開發裡的其他重要環節,像是效能監視,像是 DevOps 這裡就略過不講啦!

下面來講講全棧全棧就是全幹,要能夠自己建構和部署一個完整的,可以工作的Web App,能夠獨立編寫前端,後端程式碼能夠設定伺服器,也能夠設計資料庫。

我參加工作以來前端和後端都做,大概80%時間都是在做後端,對於要找程式設計師工作的你,有很多小伙伴問我,前端和後端哪個的發展前景好轉,專業選哪個比較容易入行,或女孩適合做哪個?這裡我推薦大家看看這篇文章《零基礎程式設計該從哪開始?推薦2021年適合學習的程式語言

選前端還是後端差異只在於使用的技術和考慮的方面不同,前端主要考慮使用者體驗,後端主要考慮底層業務邏輯,平台穩定和性能,最主要是看你喜歡做什麼,你是喜歡做用戶看得見的部分,還是去考慮用戶看不見的部分呢?

很多人覺得女生審美好適合做前端,可是公司裡面有統一的介面規格,做什麼都直接調用,library 裡面現存的component,按鈕字體邊框長啥樣,內容排序都不是我決定是pm 和ui設計師決定,我的審美也肯定沒有設計師專業。

最後即使你選擇了某一個方向,你在工作中也會實際了解到其他是做什麼的,自己喜歡什麼想做什麼,如果你想轉前端或者是後端,可以看看組裡公司裡有沒有機會,也可以自學尋找其他的機會,你之前的工作經驗不會白費,公司也總是喜歡技能比較多的員工嘛!

全端程式設計師職位比較多,可能是因為技術比較全面,花一份薪水請會兩個崗位技術的人,對於求職者來講,全端程式設計師有幾年工作經驗的會高的更多,所以大家基本上都衝著全端程式設計師去了,工作後再根據個人興趣和擅長的領域,慢慢發展成主前端,主後端全站或是管理。

以上是程式設計師前端、後端、全端是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:bilibili。如有侵權,請聯絡admin@php.cn刪除