亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.430618.com 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

各位讀者朋友們好,我是龍叔,1名退休老碼農,如果從工作算起的話我的碼齡有18年,今天我來對前端、后端、全棧這3個方面分享一下我的見解,對于準備學編程或者剛學編程不久的小友,讓我來給你們撥開迷霧。

看完這篇文章,你對前端、后端、全棧一定會有一個很全面的認知!


一、前端

(1)何為前端

簡單來說,前端開發就是開發網頁上的內容展示和與用戶的交互。內容展示指的是你在網頁上能看到的圖片、文字、視頻、數字等信息,那與用戶的交互指的就是用戶在頁面上通過點擊按鈕、輸入文字等動作對網站提供數據輸入,然后前端對用戶的輸入進行響應,比如CSDN頁面上的內容。

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

舉一個更具體的例子,就是如果你在我的文章末尾點個贊,那么頁面對你點贊這個動作做出了響應,就是在后臺數據庫里面把我的點贊量加1。并且在頁面上顯示視頻點贊量加1之后的數量。

(2)前端常用的技術

前端開發用到的基礎技術就是html,css和JAVAScript,分別用來控制網頁里面的內容、視覺效果和用戶交互。

HTML并不是一門編程語言,它是一種用來定義結構化數據的標記語言。你在瀏覽器上看到的網頁其實就對應一個HTML文件,這個文件里裝的就是HTML的代碼,而瀏覽器的職責之一就是通過你輸入的網址從網站上下載對應的HTML代碼,并且把代碼渲染成你肉眼看到的樣子前端工程師的工作內容之一就是編寫HTML代碼,或者使用一些技術來為頁面動態的生成HTML代碼。任何一個網頁,你都可以通過瀏覽器的開發者工具看到它對應的HTML代碼。

如果你仔細查看一段HTML代碼,你會發現它其實就是有一堆各種類型的尖括號標簽組合嵌套而成的。拿我前些日子的文章來舉例,在這篇文章上,文章的標題對應于代碼里面一個title類型的標簽,文章的視頻就對應于一個video類型的標簽,我的頭像和圖片對應于一個嵌套在超鏈接標簽里的image標簽,而文章里的文字對應著yt-formatted-string類型的標簽。


 

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

CSS的代碼則是用來指定每個HTML的標簽以什么樣的外觀和風格來展示,比如顏色、字體、長寬、位置、居中還是分散、顯示屬性等等。CSS的代碼也是被瀏覽器讀入,并且渲染成你肉眼所看到的效果。有時候PM會想把頁面里面一個按鈕的大小和顏色進行微調,改動這個按鈕對應的CSS代碼來實現的。

前端開發中真正編程的部分是JavaScript。網頁如何與用戶交互,如何與后端交互,都是通過JavaScript的代碼實現的,就像HTML代碼和CSS代碼是被瀏覽器執行一樣,頁面里面的JavaScript代碼也是交給瀏覽器來執行。這里插一句,JavaScript與Java并沒有什么關系,兩者之間的特性差得很遠,這就好比是印度跟印度尼西亞一樣,兩者之間沒有什么關系。

不管用什么語言,通常都不會重復地造輪子,而是會調用該語言現成的庫(library)來實現一些常見的功能,讓開發過程更加高效。

對于前端加web的開發,React是目前比較流行的庫(library),React這個庫不僅可以用來實現與用戶的交互邏輯和事件響應,事實上頁面上幾乎全部的HTML代碼都可以通過React來生成,這種在瀏覽器端生成HTML代碼進行渲染的方式叫做Client-side Rendering,與之相反的就是Server-side Rendering,也就是頁面完整的HTML代碼是全部由網站的前端服務器生成好了之后再發給瀏覽器。

這里提到了前端服務器,就順便說一下,前端服務器的邏輯可以通過任何編程語言來實現,比如Java、JavaScript、php、Python甚至是Scheme,只要服務器的行為遵守HTTP的協議就可以了。Client-side Rendering和Server-side Rendering兩種渲染方式各有優缺點,因此前端工程師在開發網頁的時候,需要結合實際情況選擇最合適的頁面渲染方式。

除了React,另外一種比較流行的JavaScript 庫就是Vue,在國內用的比較多,比如B站的HTML代碼用的就是Vue。

以上介紹的這些就是前端開發的一些常規技術,HTML瀏覽器和前端服務器的工作原理,一般會在學校里面計算機網絡課程教,CSS、JavaScript和React就主要靠自學了。


二、后端

1.何為后端

講完了前端,現在來講講后端。什么是后端開發呢?相當一部分的后端開發工作就是開發數據訪問服務,使得前端可以通過調用后端的服務來對數據進行增、刪、查、改,也就是大家經常聽到的CRUD,從而實現前端對用戶的請求響應。

比如你在一個大型網站注冊的時候,這個網站的前端就會調用它的后端,把你的用戶信息寫入數據庫。一個后端服務其實不局限于只被前端調用,它還可以被mobile App調用,還可以被其他的后端服務調用。類比一下,前端往往需要通過調用后端服務來完成對用戶。請求響應,而后端服務往往需要通過查詢數據庫來完成對前端請求的響應。從這個類比你可以看出,前端和后端的共性都是通過調用一個比自己靠后的服務來對前方客戶的請求進行響應。


 

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

后端工程師的工作范疇很廣,幾個比較常見的就是設計后端服務的AP、架構圖、數據庫,以及寫代碼實現后端服務的業務邏輯,同時你還需要保證你設計的后端服務highly available,也就是訪問量很大的時候仍然不宕機,并且對客戶請求的響應時間很短,或者說吞吐量高,單位時間內能處理的請求數量多。如果要從頭搭建一個新的后端服務,那么整個過程需要進行大量的系統設計,也就是后端工程師面試的時候會考到的系統設計,做系統設計非常考察平時知識的積累。

2.后端必備技能和工具

(1)后端服務器

那么后端工程師平時一般需要與哪些技術和工具打交道呢?首先就是后端服務器了,和前端服務器一樣,后端服務器也可以由幾乎任何一種編程語言實現,只要能把正確的數據返回給調用者就可以了。

主流的編程語言也有各自流行的Web框架,也就是現成的輪子,來幫助大家站在框架的肩膀上,快速地實現一個后端服務。比如基于Java的Web框架有Spring Boot和Dropwizard,基于JavaScript的有Express,基于Python的有Flask,這幾個web框架每一個都有大廠在使用,不同的公司具體選擇哪種框架,一定程度上是看創始的程序員們最喜歡哪種語言,哪種框架用的最6。

還有一些后端服務的框架可以支持你用多種編程語言來開發,而不是綁在一門特定的語言上,比如gRPC這個遠程調用框架,支持用Java、C++、Python、GO等語言來開發。

這么多的語言和框架,如果你想去某個公司做后端開發,一定需要對他們使用的語言和框架很熟練嗎?一般來講,不會。對公司來說,你會其中一部分就夠了,很多東西都是在工作里面學的,而且事實上2~3周內上手一門新的語言,是一名職業程序員的基本素養。

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

(2)數據庫

除了開發和維護后端服務器,后端工程師還會花大量的時間在數據庫上,不管是為你的后端服務創建數據庫,還是為數據庫的性能調優或者是分析里面的數據。

目前最常用到的數據庫是關系型數據庫,比如在工業界被廣泛使用的MySQL和PostgreSQl。如何設計一個關系型數據庫?如何使用SQL query來訪問數據,以及如何依靠index來為數據查詢加速?這些知識點在學校的數據庫課程里面也會介紹到。

然而學校數據庫課程里面介紹的比較少,但是近年來用的又越來越多的是非關系型數據庫,也就是大家常說的No-SQL數據庫,比如基于JSON文檔的MongoDB,比如基于LSM的LeveIDB。這些數據庫在某些特定的情況下,可能會比關系型數據庫更適合你的業務需求,可以在工作中去學習它的原理和特性。

數據庫往往是后端系統里的性能瓶頸,也就是最慢的一環。工程師在進行系統設計的時候,會用很多辦法來使得后端的性能,比如響應的時間盡量地少被數據庫拖后腿,比如使用MemCached這種緩存系統來加速讀取數據的速度,比如用Kafka把數據寫入異步化,提升后端寫數據的性能。

關于服務器和數據庫,過幾天我會專門更新文章來詳細介紹,感謝的小伙伴可以關注我。


三、全棧

何為全棧?全棧就是全干,就是自己能過構建和部署一個完整的可以工作的Web APP,能夠獨立編寫前端、后端代碼,能夠配置服務器,還能夠設計數據庫,基本上前面所提及的前端和后端技能及工作內容你讀得掌握。

不過薪資也會比較高,比前端工程師或后端工程師都要高,雖然1個人要干2個人的活兒,但一般情況下還是拿不到2個人的錢,當然了,技術牛逼的話1個頂好幾個普通程序員。


 

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

四、一些建議

(1)主做前端?主做后端?還是做全棧工程師?

我覺得你不需要這么早下結論,你只要去工作就可以了,在工作中學習,最后你自己會從中發現適合你的方向。比如我自己,從一開始剛出來工作時主做前端開發,后面做著做著遇到了瓶頸,技術和薪資都沒怎么提升,后面自己去認真學了后端,加上一些機遇,部門里剛好做后端的離職了緊缺人,讓我頂上去,結果我一頂上去就沒下來過,雖然工資沒有翻倍,但也加了不少,自此成為全棧工程師。

(2)面試刷題必不可少

不管你是面試前端還是后端,都會涉及算法的考察,刷題是必不可少的,刷題的網站有很多,比如??途W、力扣、賽碼等等,都是很不錯的。


 

對前端、后端和全棧感興趣的人,建議都看看!18年老程序員忠告

在這里插入圖片描述

(3)前端和后端哪個更容易?

從我這么多年的程序員生涯來看,我并不覺得前端和后端哪個更好或者更容易,區別就在于使用的技術和考慮的方面不同。前端主要考慮用戶體驗,后端主要考慮底層業務邏輯、平臺穩定和性能,最主要是要看你想做哪一部分?你是喜歡做用戶看得見的部分,還是考慮用戶看不見的部分。

(4)女生更適合做前端?

我經常聽到有些人說“女生審美好,更適合做前端”這種話,我就納了悶了,這跟性別審美有關嗎?我以前做前端的時候,公司里面都有統一的界面規格,做什么都直接調用庫里面現成的component,按鈕、字體和邊框長啥樣,內容排序都不是我決定,是PM和UI設計師決定,你的審美也肯定沒有設計師專業。

我就納了悶了,這跟性別審美有關嗎?我以前做前端的時候,公司里面都有統一的界面規格,做什么都直接調用庫里面現成的component,按鈕、字體和邊框長啥樣,內容排序都不是我決定,是PM和UI設計師決定,你的審美也肯定沒有設計師專業。

所以并不是女生就更適合做前端。

分享到:
標簽:程序員
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定