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

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

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

        首先什么是前端開發?

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

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

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

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

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

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

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

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

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

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品久久久久久无码专区不卡| 91精品国产综合久久久久久| 亚洲国产精品一区第二页| 97精品国产一区二区三区| 日韩精品一二三四区| 亚洲人成亚洲精品| 国产精品福利在线观看| 欧美精品中文字幕亚洲专区| 久久亚洲国产精品五月天婷| 亚洲精品你懂的| 精品一区二区三区免费| 国产在线精品一区二区中文| 亚洲国产成人久久精品99| 国产精品 综合 第五页| 韩国精品欧美一区二区三区| 日韩精品无码中文字幕一区二区| 精品一久久香蕉国产线看播放 | 亚洲精品免费在线观看| 98视频精品全部国产| 日韩人妻精品无码一区二区三区| 久久久无码精品午夜| 国产亚洲精品不卡在线| 98精品国产自产在线XXXX| 在线观看91精品国产入口| 国产精品麻豆高清在线观看| 成人伊人精品色XXXX视频| 亚洲国产精品VA在线观看麻豆| 亚洲精品无码久久毛片| 亚欧乱色国产精品免费视频| 蜜臀精品无码AV在线播放| 久久久久久国产精品无码下载| 久久精品无码一区二区日韩AV| 久久久国产精品| 亚洲AⅤ永久无码精品AA| 亚洲国产成人久久精品99| 最新国产精品无码| 亚洲精品中文字幕无码蜜桃| 少妇人妻偷人精品无码视频新浪| 日韩精品无码AV成人观看| 精品人妻系列无码天堂| 99久久国产综合精品麻豆|