一文看懂前端和后端開(kāi)發(fā)(前端和后端開(kāi)發(fā)的區(qū)別)
作為一名開(kāi)發(fā)者,你可能會(huì)想:2019 年最好的軟件開(kāi)發(fā)技術(shù)和編程語(yǔ)言會(huì)是什么?它們又是如何被應(yīng)用在軟件開(kāi)發(fā)當(dāng)中的?如果你在思考這個(gè)問(wèn)題,那就來(lái)對(duì)地方了。這篇文章將對(duì)前端和后端開(kāi)發(fā)技術(shù)做一個(gè)對(duì)比,先從基本的開(kāi)始,然后逐步比較它們的不同點(diǎn),比如對(duì)開(kāi)發(fā)技能的要求、發(fā)展?jié)摿?、職業(yè)生涯的發(fā)展和薪水,等等。
1、什么是前端開(kāi)發(fā)?
前端開(kāi)發(fā)主要涉及網(wǎng)站和 App,用戶能夠從 App 屏幕或?yàn)g覽器上看到東西。簡(jiǎn)單地說(shuō),能夠從 App 屏幕和瀏覽器上看到的東西都屬于前端。
網(wǎng)站和移動(dòng) App 的前端
我們就以你現(xiàn)在正在瀏覽的網(wǎng)頁(yè)為例。網(wǎng)頁(yè)上的內(nèi)容、圖片、段落之間的空隙、左上角的圖標(biāo)、右下角的通知按鈕,所有這些東西都屬于前端。
移動(dòng) App 的前端和網(wǎng)站是一樣的。例如,你所看到的內(nèi)容、按鈕、圖片,它們都屬于前端。另外,因?yàn)橐苿?dòng)設(shè)備的屏幕是可以觸摸的,所以應(yīng)用程序?qū)Ω鞣N觸控手勢(shì)(比如放大 / 縮小、雙擊、滑動(dòng)等)做出的響應(yīng)也屬于前端,它們是前端的活動(dòng)部分。
這些東西是由前端開(kāi)發(fā)者開(kāi)發(fā)出來(lái)的,他們使用了 Ionic 、 Swift 、 Kotlin 、 Bootstrap 、 Angular 、Vue 、 jQuery 、 React.js 等開(kāi)發(fā)技術(shù)。后面我們會(huì)更多地介紹這些開(kāi)發(fā)技術(shù)。
物聯(lián)網(wǎng)的前端
任何可以連接到互聯(lián)網(wǎng)的設(shè)備都是物聯(lián)網(wǎng)設(shè)備。你可能會(huì)好奇物聯(lián)網(wǎng)設(shè)備的前端會(huì)是什么樣的。任何一種智能設(shè)備,比如智能冰箱、遠(yuǎn)程 POS 機(jī)、智能手表、智能錢(qián)包,它們都需要提供某種界面,這樣用戶才能操作這些設(shè)備。所以,這種界面就是一種交互媒介,組成這種界面的元素就是物聯(lián)網(wǎng)的前端。
但嚴(yán)格來(lái)說(shuō),物聯(lián)網(wǎng)設(shè)備并沒(méi)有真正的前端。不過(guò)它們都裝有固件,與移動(dòng) App 的前端類似。這些固件可以用各種編程語(yǔ)言來(lái)開(kāi)發(fā),比如 C 語(yǔ)言、 C 、 Lua 、 Python 或 JavaScript 。
2、什么是后端開(kāi)發(fā)?
后端開(kāi)發(fā)即“服務(wù)器端”開(kāi)發(fā),主要涉及軟件系統(tǒng)“后端”的東西。比如,用于托管網(wǎng)站和 App 數(shù)據(jù)的服務(wù)器、放置在后端服務(wù)器與瀏覽器及 App 之間的中間件,它們都屬于后端。簡(jiǎn)單地說(shuō),那些你在屏幕上看不到但又被用來(lái)為前端提供支持的東西就是后端。
網(wǎng)站和移動(dòng) App 的后端
網(wǎng)站的后端涉及搭建服務(wù)器、保存和獲取數(shù)據(jù),以及用于連接前端的接口。如果說(shuō)前端開(kāi)發(fā)者關(guān)心的是網(wǎng)站外觀,那么后端開(kāi)發(fā)者關(guān)心的是如何通過(guò)代碼、API 和數(shù)據(jù)庫(kù)集成來(lái)提升網(wǎng)站的速度、性能和響應(yīng)性。
與前端類似,移動(dòng) App 的后端與網(wǎng)站后端是一樣的。為移動(dòng) App 搭建后端有這些選擇:云平臺(tái)(AWS、Firebase)、自己的服務(wù)器或 MBaaS(移動(dòng)后端即服務(wù),Mobile Backend as a Service)。
后端開(kāi)發(fā)使用 Ruby 、 Apache 、 Nginx 、 PHP 、 MySQL 、 MongoDB 等技術(shù)。后面我們會(huì)更多地介紹這些開(kāi)發(fā)技術(shù)。
物聯(lián)網(wǎng)的后端
云平臺(tái)是物聯(lián)網(wǎng)后端的一個(gè)重要組件。有證據(jù)表明,大部分物聯(lián)網(wǎng)設(shè)備極度依賴云服務(wù)器,它們通過(guò)服務(wù)器上傳、處理和下載數(shù)據(jù)。
高端物聯(lián)網(wǎng)解決方案的后端甚至涉及人工智能和機(jī)器學(xué)習(xí)。
物聯(lián)網(wǎng)項(xiàng)目的后端平臺(tái)包括 Amazon IoT、Google Cloud、MQTT Broker、IFTTT,等等。
3、那么前端和后端的區(qū)別有哪些?
前端和后端的技術(shù)棧比較
4、前端和后端開(kāi)發(fā)者,哪個(gè)更好?
做前端開(kāi)發(fā)還是后端開(kāi)發(fā),除了技術(shù)方面的東西,還要看什么對(duì)你來(lái)說(shuō)更為重要。
如果美學(xué)和產(chǎn)品感覺(jué)方面的東西對(duì)你來(lái)說(shuō)更重要,那么你可能會(huì)傾向于選擇前端技術(shù)。如果你關(guān)注的是提高網(wǎng)站、應(yīng)用程序或軟件的效率和響應(yīng)性,那么你的目標(biāo)可能會(huì)是后端開(kāi)發(fā)。
前端設(shè)計(jì)師所做的很大一部分工作是讓用戶在移動(dòng)或 PC 屏幕上看到的東西看起來(lái)很棒,而且很容易使用。相反,后端開(kāi)發(fā)人員只關(guān)心如何編寫(xiě)干凈的代碼。
如果你要基于上面所說(shuō)的內(nèi)容在前端和后端之間判定其中一個(gè)比另一個(gè)好,那么這本身就是一個(gè)錯(cuò)誤的假設(shè)。實(shí)際上,它們都是不可替代的,在構(gòu)建網(wǎng)站或應(yīng)用程序時(shí),它們是同等重要的。
有些人具備視覺(jué)方面的天賦,而其他人擅長(zhǎng)通過(guò)邏輯和技術(shù)來(lái)解決問(wèn)題。蘋(píng)果之所以成為今天的樣子,要?dú)w功于 Steve Jobs(前端的夢(mèng)想家) 和 Steve Wozniak(后端天才)。
5、前端和后端開(kāi)發(fā)者
現(xiàn)在, 你已經(jīng)對(duì)前端和后端開(kāi)發(fā)有了很好的了解,接下來(lái)是時(shí)候更多地了前端和后端開(kāi)發(fā)者了。下面簡(jiǎn)要介紹了前端和后端開(kāi)發(fā)者的職位、技能和職責(zé)。
通過(guò)這些要點(diǎn),你可以全面了解后端和前端開(kāi)發(fā)者的技能。
前端和后端開(kāi)發(fā)者的職位頭銜
開(kāi)發(fā)者有很多工作機(jī)會(huì),根據(jù)具體的專業(yè)知識(shí)、經(jīng)驗(yàn)和興趣,你可以申請(qǐng)以下這些后端或前端開(kāi)發(fā)職位。
前端:
- 前端開(kāi)發(fā)工程師;
- 前端 Web 設(shè)計(jì)師;
- Android 開(kāi)發(fā)工程師;
- iOS 開(kāi)發(fā)工程師;
- 前端 DevOps 工程師;
- 前端 JavaScript 開(kāi)發(fā)工程師;
- 前端 UI 工程師;
- HTML/CSS 開(kāi)發(fā)工程師;
- 前端測(cè)試工程師;
- 前端 SEO 專家。
后端:
- 后端開(kāi)發(fā)工程師;
- 初級(jí)后端開(kāi)發(fā)工程師;
- Web 開(kāi)發(fā)工程師;
- DevOps 工程師;
- 軟件工程師;
- WordPress 開(kāi)發(fā)工程師;
- 云計(jì)算工程師;
- REST 專家;
- 服務(wù)器 / 系統(tǒng)管理員;
- 數(shù)據(jù)庫(kù)架構(gòu)師;
- Java 開(kāi)發(fā)工程師;
- Python 開(kāi)發(fā)工程師;
- PHP 開(kāi)發(fā)工程師。
前端和后端開(kāi)發(fā)者的技能要求
不同職位和級(jí)別所要求的技能是不一樣的,但不管怎樣,要成為前端或者后端開(kāi)發(fā)者絕對(duì)需要掌握一定的技能。
前端和后端開(kāi)發(fā)者的角色和職責(zé)
前端和后端開(kāi)發(fā)者的角色和職責(zé)是什么?在申請(qǐng)工作或招聘前端或后端開(kāi)發(fā)者之前,請(qǐng)確保了解以下這些內(nèi)容。
前端和后端開(kāi)發(fā)者的薪水比較
前端開(kāi)發(fā)者:
以上數(shù)據(jù)來(lái)自 PayScale
以上數(shù)據(jù)來(lái)自 Glassdoor
后端開(kāi)發(fā)者:
以上數(shù)據(jù)來(lái)自 PayScale
以上數(shù)據(jù)來(lái)自 Glassdoor
6、什么是全棧開(kāi)發(fā)?
有些人可以同時(shí)從事前端和后端開(kāi)發(fā),他們被稱為全棧開(kāi)發(fā)者。
成為全棧開(kāi)發(fā)者或者招聘全棧開(kāi)發(fā)者既有優(yōu)點(diǎn)也有缺點(diǎn)。雖然開(kāi)發(fā)者數(shù)量可以減少到原來(lái)的一半,但他們的水平也相應(yīng)降低了。專門(mén)從事前端或后端開(kāi)發(fā)的開(kāi)發(fā)者對(duì)單個(gè)領(lǐng)域的了解總是多于同時(shí)了解這兩個(gè)領(lǐng)域的開(kāi)發(fā)者。
與全棧類似的技術(shù)開(kāi)發(fā)棧還有很多,比如 MEAN 棧、LAMP 棧、.NET 棧、Python-Django 棧、ROR 棧,等等。開(kāi)發(fā)者可以自由選擇成為這些技術(shù)棧的專家。
原文鏈接:https://www.excellentwebworld.com/backend-vs-frontend/