前端和後端是Web開發中的兩個不同的專業。在2000年代,前端開發人員是網站的設計者,其餘人員則是後端開發人員。

現在,在中型或大型公司中,涉及的角色更多。但是在小型公司(也稱為初創公司)中,通常有兩種類型的開發人員:一種用於前端,另一種用於後端。

設計師

前端開發人員不是設計師。這是一個誤解。設計師是在紙上繪製設計或使用Photoshop之類的應用程序的專業人士。設計師必須以圖像格式提供最終設計,還必須提供網站的其餘圖形元素。

如果網站必須在不同設備之間進行大幅更改(使用響應式設計),則設計人員還負責設計這些不同版本的外觀。

前端

前端是與用戶界面交互相關的所有內容。其中包括HTML作為表示信息的語言,CSS作為表示信息的語言的語言以及JavaScript作為交互的語言。

為了簡化工作,前端開發人員通常使用某種CSS框架,而Twitter Bootstrap 是最受歡迎的CSS框架 。這表示具有定義樣式基礎的一系列文件,前端開發人員可以對其進行自定義。

如果應用程序提供了 API,則通常的做法是使用JavaScript框架來實現所有模板,以便後端僅通過API與前端進行通信。這些JavaScript框架提供了將代碼模塊化的方法,因此維護更加容易。這些框架的示例可以是Angular,React,Vue等。

如果要使用後端框架的模板系統,那麼前端開發人員必須適應選擇用來編寫模板的語言。但是,如果您只想將後端用作API,則必須在前端部分中實現模板。

簡而言之,前端開發人員必須實質上了解HTML,CSS和JavaScript,而後者越來越有必要。從這一點來看,有很多工具和框架可用來簡化工作,儘管起初您必須經歷學習過程。

後端

後端是您無法直接在瀏覽器中看到的內容。它是處理信息並在後台準備的東西。

如今,沒有人從頭開始實現後端(除了您已經知道的那些大型互聯網公司)。為了簡化工作,通常使用框架。對於Ruby,最常見的框架是Ruby on Rails,它提供了 MVC 模式。V是後端可以與前端重疊的位置,就像我們之前在模板中看到的那樣。

但是,如果應用程序必須提供一個簡單的API,則會有一些有趣的微框架,例如 Sinatra,它使您可以在單個文件中實現路由和控制器。

後端開發人員通常應負責資料庫,該資料庫可以是關係資料庫(例如 PostgreSQL)或面向文檔的資料庫(例如 MongoDB)。後一種類型也稱為NoSQL。當資料庫足夠大以成為公司的核心時,另一個角色將接管 資料庫管理員

但這不只是向瀏覽您的網站的用戶提供信息。發送電子郵件通知是由排隊系統管理的,該排隊系統非同步運行以提高並發性。有幾種解決方法。在Ruby的世界中,流行的系統是 Sidekiq,它使用 Redis 來快速訪問其需要處理的內容。

最後,必須將應用程序傳輸到伺服器。除Microsoft Web技術外,其餘均使用Linux伺服器,因此後端開發人員需要具備設置和優化此操作系統的知識。因此,藉助部署工具(如 Capistrano),僅傳輸更改。

全棧

最後,我們來到Full Stack開發人員角色,該角色將後端和前端分組。這種類型的開發人員是開發團隊中最常見的。最後,我們所有人都必須以這種方式工作,從而使開發過程更加敏捷。

以我的觀點和經驗,一個全棧開發人員通常是一個後端開發人員,他對前端有很好的了解,並且深CSS CSS和一些JavaScript框架。

在這種情況下,可能會有幾個前端開發人員支持整個堆棧的工作。

結論

當您開始學習Web開發時,您需要明確關注的重點,因為後端和前端都已經很大並且正在取得巨大的進步。

如果您喜歡用戶界面並且熟悉使用HTML和CSS,那麼前端就是您的專長。但是請記住,JavaScript是必須的,因為您將在各種工具和框架中使用它。請記住,前端開發人員不是設計師。

如果您對使用資料庫和處理請求感到更自在,則適合您使用後端。您可能還需要管理操作系統和部署(將更新的代碼傳輸到伺服器)。但是最重??要的是選擇您喜歡的語言。Ruby是一個不錯的選擇。實際上,Ruby的口號是「程序員最好的朋友」


很多外行人在考慮轉行IT時,都會出現以下這樣的糾結:

前後端是什麼?

做前端還是後端?

這兩者哪一個更好?

這兩者哪一個薪資更高?這兩者哪一個比較容易學?這兩者哪一個更有發展前景?……

Emmm,其實,想要在IT技術領域深耕下去,無論是前端還是後端,沒有哪一個是容易的。

今天編者就從以下幾個方面來給大家詳細科普一番。

一、什麼是前端,有哪些相關崗位?

前端即網站前台部分,既包含了頁面設計,又包含了頁面實現,主要是指運行在PC端,移動端等瀏覽器上展現給用戶瀏覽的網頁。

「前端」是網站與用戶直接交互的部分,從字體到布局再到圖片大小,以及下拉菜單、展示欄和動態效果等等,這些視覺上可見的所有內容,都是由瀏覽器解析、處理、渲染相關HTML、CSS、JavaScript後呈現出來的結果。

簡單來說,你在使用網路過程中看到的所有網站上的展示頁面和供你操作的使用頁面都可以稱之為前端。

IT行業中的前端一般泛指兩類崗位:

1.UI設計。即用戶界面設計,對PC互聯網和移動互聯網進行設計,如網頁設計、App頁面設計和布局,icon設計,交互設計等,設計時除了視覺美感外,還需考慮人機交互的邏輯,主要載體是各種電子顯示屏。

2.Web前端開發。將UI設計的效果圖實現成瀏覽器可以運行的網頁,並配合後端做網頁的數據顯示和交互等可視方面的工作內容。

二、什麼是後端,有哪些相關崗位?

IT行業中的後端更多的是與資料庫進行交互以處理相應的業務邏輯。需要考慮的是如何實現相關功能和信息數據的存取、平台的穩定與性能等等,簡單說就是為前端展示的業務邏輯功能做處理。

後端是用戶看不見的東西,涉及到的邏輯代碼也比前端人員要多很多。

IT行業中的後端一般也泛指兩類崗位:

1.後端開發。利用Java、Python、PHP等各種技術語言進行產品業務邏輯和功能的實現,目前企業內比較主流的後端語言是Java開發。

2.軟體測試。在規定的條件下對開發人員做出來的產品或程序進行操作,以發現程序錯誤,衡量軟體質量,並對其是否能滿足設計要求進行評估的過程和結果的反饋。

舉個栗子,你就會明白前後端分別是什麼了。

註冊一個網站,你的信息會被記錄到該網站的後台資料庫,便於下次直接登錄,註冊時用戶看到和使用的頁面屬於前端,而存儲你註冊信息的後台資料庫就是後端。

再比如,疫情期間,我們都會使用健康碼。

當你打開微信掃一掃就出現的綠碼界面,就是前端技術實現的。

但其實,微信掃碼之後會向伺服器發送請求,伺服器會根據用戶信息來判斷出現什麼顏色的二維碼,而這一套邏輯以及相關的代碼實現,是用戶看不見的,這就是後端的工作。

三、前後端不同崗位各自需要什麼樣的技術?

1.UI設計。

需精通PS、AI、Axure、coreldraw等設計軟體,了解移動端和PC端不同平台之間的特性,能做多屏界面設計、Logo設計、可視化和後台等等,同時如果會Web前端設計,交互原型設計,動效設計會更有競爭力。

2.Web前端開發。

需精通HTML5、CSS3、JavaScript、JQuery、Ajax、ES6等比較核心的前端技術,具備互聯網交互設計能力,熟悉後端伺服器運行環境和數據通信協議,掌握響應式布局框架、Angular、Vue、React等JS框架以及App開發技能。

3.後端開發。

後端開發以Java為例,主要用到的是,包括但不限於Spring、Springmvc、Hibernate、Http協議、Servlet Tomcat伺服器等技術。掌握JSP、JSTL、XML、HTML、JavaScript、JQuery等語言,能做簡單的MySQL或者SqlsServer等主流資料庫設計,懂一些設計模式等等。

4.軟體測試。

初級測試人員需要學習功能測試技術、計算機基礎、軟體測試核心理論、Linux、資料庫等。

但若想要長期發展,測試人員還需要掌握一門計算機語言Python或Java,熟悉標準規範的測試流程,能進行需求分析、計劃制定、用例編寫和文檔輸出;能獨立搭建測試環境;有性能測試,自動化測試經驗者優先考慮。

四、前後端不同崗位的難易程度如何?

總得來說,IT行業的各個技術崗位入門都不難,但若想深入發展,那麼就需要多下苦功夫了。

很多小夥伴喜歡從代碼量來區分前後端這幾個大類崗位的難易程度,以此排列就是:Java開發&>Web前端開發&>軟體測試&>UI設計。

但是,這並不完全絕對,也不完全準確。

IT領域中的各個崗位的劃分非常細緻,從崗位特性來看,Java對於邏輯性的要求比較高;測試需要細心和耐心,但同時也需要一些代碼能力;Web前端和UI設計則需要對美有一定見解和追求。

所以,每個崗位的側重點不同,以及不同企業對同類崗位的要求不同,那麼難易程度也就無法一概而定。

五、前後端不同崗位的發展前景和薪資區別?

發展前景如何,這一點似乎沒有太大的可討論,因為只要IT行業持續發展,那麼相對應的這四類比較重要的崗位就會一直被需要。

同時,只要你能夠靜下心來在自己的崗位上努力發展,那麼未來的收益一定不會差。

當然,雖然都有發展前景,但是市場需求卻不太一樣,相對而言,在國內的企業中,Java的需求量會更大一些,其次Web前端和軟體測試差不多,UI設計相對而言會少一些。

之所以會出現這樣的情況是因為只有在相對中大型企業內才會將研發崗位拆分的比較細緻,但若在一些初創公司,一般開發也做測試,前端也做UI等等。

不同崗位在全國範圍內的平均薪資如下,數據來源自職友集,供大家自行參考:

Java開發全國薪資水平
Web前端全國薪資水平
UI設計全國薪資水平
軟體測試全國薪資水平

看完以上的數據,你可能會覺得測試居然沒上10K。但其實,有一類測試崗位的薪資並不低。

測試開發全國薪資水平

造成普通測試和測試開發有如此大差距的原因是在於,以前大家只要會點點點就能找到一份普通的功能測試,企業也不會有太高的要求,但如今你若帶著這樣的能力跳槽,基本很難再找到工作了。

現在企業招聘測試人員,基本都會要求懂一門開發語言,因為懂開發的測試可以根據企業的特定產品自己編寫自動化測試工具,從而提高工作效率,給企業帶來更大的回報。

最後,編者想說,無論是前端還是後端,無論是難一點的還是簡單一點的,大家均可根據自己的喜好來做選擇,因為興趣是最好的老師,而任何一個行業想要深耕,都需要付出努力。

此文共勉,希望能夠幫助一部分小夥伴解疑答惑。同時,也希望大家在這個冬天,抵禦病毒,外出做好個人防護。

:本文內容首發於微信公眾號「蝸牛新視界」,原文鏈接https://mp.weixin.qq.com/s/oB1quA3pH561eM00DecmDg,如需轉載請獲得授權並註明原始出處。

發佈於 2020-12-15繼續瀏覽內容知乎發現更大的世界打開Chrome繼續凈琉璃凈琉璃前端答疑群:296212562(有不懂可以在裡面問我)

前端做展示,後端做業務邏輯。


前端做展示,後端做業務邏輯。


前端開發主要做的是用戶所能看到的前端展示界面;後端開發主要做的是邏輯功能等模塊。其實主要區別體現在以下兩個方面:知識結構與實現和工作職責。

1、知識結構

(1)展示的方式不同

前端指的是用戶可見的界面,網站前端頁面也就是網頁的頁面開發,比如網頁上的特效、布局、圖片、視頻,音頻等內容。前端的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,並配合後端做網頁的數據顯示和交互等可視方面的工作內容。

後端是指用戶看不見的東西,通常是與前端工程師進行數據交互及網站數據的保存和讀取,相對來說後端涉及到的邏輯代碼比前端要多的多,後端考慮的是底層業務邏輯的實現,平台的穩定性與性能等。

(2)所用的技術、技能與工具不同

前端開發,就是要創造上面提到的網站面向用戶的部分背後的代碼,並通過建立框架,構建沉浸性的用戶體驗。為了實現這個目標,開發需要熟練運用下列語言、框架、工具庫:

後端開發者使用這些工具編寫乾淨、可移植、具有良好文檔支持的代碼來創建或更新 Web應用。但在寫代碼之前,他們需要與客戶溝通,了解其實際需求並轉化為技術目標,制定最有效且精簡的方案來進行實現。

(3)所用技術不同

前端開發用到的技術包括但不限於html5、css3、javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技術。

後端開發 以java為例 主要用到的 是包括但不限於Struts spring springmvc Hibernate Http協議 Servlet Tomcat伺服器等技術。

2、工作職責

前端工程師主要的工作職責分為三大部分,分別是傳統的Web前端開發,移動端開發和大數據呈現端開發。Web前端開發主要針對的是PC端開發任務;

移動端開發則包括Android開發、iOS開發和各種小程序開發,在移動互聯網迅速發展的帶動下,移動端的開發任務量是比較大的,隨著5G標準的落地,未來移動端的開發任務將得到進一步的拓展;大數據呈現則主要是基於已有的平台完成最終分析結果的呈現,呈現方式通常也有多種選擇,比如大屏展示等。

後端工程師的主要職責也集中在三大部分,分別是平台設計、介面設計和功能實現。平台設計主要是搭建後端的支撐服務容器;介面設計主要針對於不同行業進行相應的功能介面設計,通常一個平台有多套介面,就像衛星導航平台設有民用和軍用兩套介面一樣;功能實現則是完成具體的業務邏輯實現。


推薦閱讀:
相关文章