站長資訊網
最全最豐富的資訊網站

程序員前端、后端、全棧是什么意思

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

首先什么是前端開發?

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

這里的“內容展示”:指的是你在網頁上能看到的,圖片文字、視頻、數字等信息。

那么與用戶的交互指的就是,用戶在頁面上通過點擊按鈕、輸入文字等動作對網站提供數據輸入,然后前端對用戶的輸入進行響應。

比如更新頁面上的內容,舉一個更具體的例子就是,如果你在我的文章下面進行評論,那么頁面對你評論這個動作就會做出響應,比如會在后臺數據庫里面,把我的評論量加一。

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

程序員前端、后端、全棧是什么意思

前端開發用到的基礎技術就是 html、css 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設計師決定,我的審美也肯定沒有設計師專業。

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

全棧程序員崗位比較多,可能是因為技術比較全面,花一份工資請會兩個崗位技術的人,對于求職者來講,全棧程序員有幾年工作經驗的會高的

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
日韩精品中文字幕无码一区| 国产精品成人一区二区| 97人妻无码一区二区精品免费| 久久se精品一区精品二区| 国产精品自在拍一区二区不卡| 亚洲日韩精品无码专区加勒比| 日日夜夜精品免费视频| av国内精品久久久久影院| 久久精品无码专区免费青青 | 日韩人妻精品无码一区二区三区| 国产在线精品一区二区中文| 精品无人区无码乱码毛片国产| 亚洲精品国自产拍在线观看| 日韩好片一区二区在线看| 青青青国产精品一区二区| 日韩欧美亚洲中文乱码 | 国产午夜精品免费一区二区三区| 99久久99久久精品免费观看| 国产精品99精品无码视亚| 国精品无码一区二区三区左线| 91麻豆精品视频| 久久亚洲精品无码观看不卡| 精品国精品国产自在久国产应用男| www.精品在线| 国产成人无码精品久久久久免费| 五月天婷婷精品免费视频| 日韩内射激情视频在线播放免费| 日韩精品无码免费专区午夜不卡 | 国产精品香蕉在线观看| 51午夜精品免费视频| 国产精品免费在线播放| 精品国产黑色丝袜高跟鞋| 久久se这里只有精品| 国产亚洲午夜高清国产拍精品| 97久久精品午夜一区二区| 国产A三级久久精品| 久久精品国产69国产精品亚洲 | 国产精品无码aⅴ嫩草| 国产精品jizz观看| 国产精品日韩深夜福利久久| 日韩亚洲国产综合高清|