作者:Paresh Sagar翻譯:瘋狂的技術宅
原文:https://www.excellentwebworld...
未經許可嚴禁轉載
如果你是一位有志於全面瞭解前後端程式語言及框架的開發人員或創業者,那你來對地方了。本文將幫助你瞭解前端和後端技術之間的基本差異。
所以本文將想你闡述他們的技術棧,為什麼我們需要構建移動應用、網站或物聯網應用開發解決方案。
最重要的是,怎樣通過前後端程式語言和框架之間的完美協作來實現完整的解決方案。
Stack Overflow 進行了 2019 年的開發人員調查,其中有超過 81,000 名來自世界各地的開發人員參與了此項調查。以下是全球開發人員中最流行的15種程式語言:
你一定在想,2019 年最好的軟體開發技能、技術和語言是什麼,以及它們如何適應軟體開發方案?
這就是你將要在本文中學到的東西。
所以,讓我們從基礎開始,逐步分析他們的差異、技能要求、發展潛力,以及前端和後端開發人員的職業前景和薪水。
什麼是前端開發?
前端,也稱為“客戶端開發”,簡單來說,你可以在應用程式或網站的螢幕上看到的所有內容都屬於前端。
網站和移動應用的前端
讓我們考慮一個現實的例子:你正在訪問的網站。內容設計、影象、段落和線條之間的間距,左上角的公司徽標,以及右下角的小通知按鈕——所有這一切都是前端。
移動應用的前端與網站相同。例如,你在移動或 Web 應用中看到的內容,按鈕、影象是前端的一部分。此外移動螢幕還具有觸控響應功能,因此當應用響應你所做的所有手勢時,需要進行縮放放大/縮小、雙擊、滑動等操作。
前端開發人員構建所有的這些。它們創造了你在螢幕上看到的外觀和觸控到的體驗。
Ionic,Swift,Kotlin,Bootstrap,Angular,Vue,jQuery,React.js 是用於前端開發的一些工具和技術。我們將在文中進一步討論這些技術棧。
物聯網的前端
連線到網際網路的任何物件都是IoT(物聯網)裝置。你可能在想物聯網裝置的前端如何工作?任何智慧裝置,如智慧冰箱、遠端 PoS 系統、智慧手錶、智慧錢包,都需要使用者可以與之互動以操作裝置的“東西”。因此,“某物”是一種互動媒介,其元素就是物聯網的前端。
物聯網裝置沒有前端的說法,但裝置包含一個韌體,其行為類似於移動應用程式中的前端。此外該韌體可以用C、C++、Lua、Python 和 JavaScript 等語言編寫。
另外還有物聯網裝置的 UI/UX 設計和實現。
81,000 名受訪開發者中最受歡迎的框架:
什麼是後端開發?
後端,也稱為“伺服器端開發”,也就是在系統“後面”所發生的事情。同樣,在後端伺服器和瀏覽器或應用程式之間儲存網站、應用資料和中間媒介的伺服器都屬於後端。簡單來說,在應用程式或網站的螢幕上看不到的所有東西都是前端的後端。
網站和移動應用後端
網站的後端需要設定伺服器,儲存和檢索資料,以及將這些伺服器與前端進行連線的介面。如果說前端開發人員梗關注網站的外觀,後端開發人員則更更關注網站的速度、效能和響應能力,後端通過編碼、雲 API 和資料庫進行整合。
就像前端一樣,移動應用的後端開發在各個方面都與網站後端相同。此外,你為移動應用設定後端伺服器的選項包括:雲端計算(AWS,Firebase)定製伺服器或 MBaaS(移動後端即服務)。
Ruby,Apache,Nginx,PHP,MySQL,MongoDB 等用於後端開發的工具和技術很少。我們將在文中進一步討論這些技術棧。
物聯網後端
物聯網後端最重要的組成部分之一是雲後端。顯然大多數物聯網裝置都依賴雲伺服器對資料進行上傳和下載,並將其處理為動作。
如果我們談論高階物聯網解決方案,後端開發可以擴大到 AI(人工智慧)和 ML 等功能(機器學習)。
用於物聯網專案的後端技術是Amazon IoT,Google Cloud,MQTT Broker,IFTTT等等。
前端 Vs 後端有什麼區別?
前端 | 後端 | |
---|---|---|
專業知識 | 前端 Web 開發人員需要精通 HTML,CSS 和 JavaScript。 | 後端開發人員應該擁有資料庫,伺服器,API 等技能 |
職位描述 | 前端開發人員團隊設計網站的外觀,並通過測試不斷修改。 | 後端開發人員團隊開發軟體,並構建支援前端的資料庫架構。 |
獨立開發服務 | 除非網站是一個簡單工作的靜態網站,否則不能單獨提供前端服務。 | 後端服務可以作為 BaaS(後端即服務)獨立提供。 |
專案目標 | 前端開發人員的目標是確保所有使用者都可以訪問該網站或應用,並在所有檢視中做出響應 —— 移動和桌面。 | 後端開發人員的目標是圍繞前端構建程式,並提供所需的所有支援,並確保站點或應用始終正常執行。 |
前端與後端技術棧
前端 | 後端 | |
---|---|---|
程式語言 | HTML,CSS,JavaScript | PHP,Python,SQL,Java,Ruby,.NET,Perl |
框架 | Angular.JS,React.JS,Backbone.JS,Vue.JS,Sass,Ember.JS,NPM | Laravel,CakePHP,Express,CodeIgniter,Ruby on Rails,Pylon,ASP.NET |
資料庫 | Local Storage, Core Data, SQLite, Cookies, Sessions | MySQL,Casandra,Postgre SQL,MongoDB,Oracle,Sybase,SQL Server |
伺服器 | - | Ubuntu,Apache,Nginx,Linux,Windows |
其他 | AJAX,AMP,Atom,Babel,BEM,Blaze,Bourbon,Broccoli,Dojo,Flux,GraphQL,Gulp,Polymer,Socket.IO,Sublime Text | - |
以下是世界上最流行的程式語言:
前端 Vs 後端:誰是最好的?
除了所涉及的技術之外,你對前端與後端開發人員的選擇取決於開發人員最重要的因素。
如果對美學和產品的感覺對你來說至關重要,那麼你會傾向於將前端技術作為職業和專業。另一方面,如果你關注提高網站、應用程式或軟體的效率和響應能力,那麼你的方向就應該是後端開發。
前端設計師所做的很大一部分工作就是讓使用者在移動裝置或 PC 螢幕上看到的東西看起來都很棒而且易於使用。相反,後端開發人員唯一關注的美學是編寫乾淨的程式碼。
如果你開始認為在前端 Vs 後端 中,兩者中任何一個基於我們上面談到的內容都優於另一個,那麼這是一個錯誤的假設。這兩個學科非常獨特,對於構建網站或應用程式同樣重要。
只是有些人對視覺方面有天賦,而有些人則對邏輯和技術問題解決的很好。由於史蒂夫·賈伯斯(前端幻想家)以及史蒂夫·沃茲尼亞克(後端天才),蘋果成為了它的樣子。
前端與後端開發人員
現在你對前端和後端開發有了一個很好的認識。現在需要了解更多有關軟體開發人員的資訊。下面我們提到了前端和後端開發人員職位、技能和職責的簡要描述。
通過以下這些要點,充分了解後端和前端開發人員的能力。
前端 Vs 後端開發人員:職位名稱
作為開發人員有很多工作機會。根據你的專業知識、經驗和興趣領域,可以申請以下職位。
前端職位名稱:
- 前端開發人員
- 前端 Web 設計師
- Android 開發人員
- iOS 開發人員
- 前端 Dev. Ops
- 前端 JavaScript 應用開發人員
- 前端 UI 開發人員
- HTML / CSS 開發人員
- 前端測試 / QA
- 前端 SEO 專家
後端職位名稱:
- 後端開發人員
- 初級後端工程師
- Web開發人員
- DevOps
- 軟體工程師
- WordPress 開發人員
- 雲開發人員
- REST API 專家
- 伺服器/系統管理員
- 資料庫設計師 / 架構師
- Java 開發人員
- Python 開發人員
- PHP 開發人員
下圖顯示了 81,000 名認為自己屬於那種開發人員的百分比。
前端與後端開發人員:所需技能
所需的高階技能,實際中會根據經驗和職稱進行更改。但是成為前端或後端開發人員絕對需要。
前端開發所需的技能 | 後端開發所需的技能 |
---|---|
對美學,藝術和設計有很好的理解 | 全面瞭解第三方附加元件 |
瞭解各種 CMS,如 WordPress,Joomla 或 Drupal | 關於如何除錯程式碼的批判性理解 |
直觀的使用者需求 | 將客戶的業務需求轉換為功能程式碼 |
PHP 和 OOP 知識(物件導向程式設計) | 瞭解 Web 伺服器配置 |
專業的質量保證 | 相容外部系統(支付處理,社交媒體網站) |
能夠使用 PhotoShop,Sketch 或 Figma 等設計工具 | 批判性思維技巧 |
網路託管基礎知識 | 設計使用者互動系統 |
前端與後端開發者:角色和責任
前端和後端開發人員的角色和職責是什麼?在申請工作或僱用前端或後端開發之前,請務必仔細檢查這些內容。
前端開發人員的角色和職責 | 後端開發人員的角色和職責 |
---|---|
確保在各種瀏覽器中網站的可見性保持不變。 | 通過網站或應用瞭解客戶的目標,並提供有效的開發解決方案。 |
構建一個視覺上吸引人的網站或應用程式,並誘使使用者進行互動。 | 安全地儲存資料並確保在請求時向該使用者顯示資料。 |
瞭解跨瀏覽器測試。 | 開發支付處理系統、安全儲存支付資訊、並支付費用。 |
熟練使用 HTML5 和 Dreamweaver 等工具。 | 管理和構建(如有必要)跨裝置工作的API資源。 |
對SEO的基本理解。 | 構建系統架構,進行資料科學分析。 |
設計易於使用。 | 組織在多個裝置上高效執行的系統邏輯。 |
善於與客戶互動並實施反饋。 | 解決系統相關問題和實現演算法的技巧。 |
前端與後端開發人員:薪資比較
前端開發人員薪資
根據 PayScale 提供的資料:
後端開發人員薪資
根據 PayScale 提供的資料:
什麼是全棧開發?
有些人可以同時掌握前端和後端開發技能。這樣的開發被稱為全棧開發人員。
學習或僱用全棧開發者有其自身的優點和缺點。可以吧開發人員數量減少到一半,但專業水平也隨之降低了。專門從事前端或後端開發的開發人員一般比了解兩者的人對於單一學科更加專業。
還有各種類似於全棧的技術棧,如 MEAN 技術棧,LAMP 技術棧,.NET 技術棧,Python-Django 技術棧,ROR 技術棧開發人員可以成為任何這些技術堆疊的專家。
前端、後端或全棧:你會選擇什麼?
如果你是開發人員,請不要根據哪個聽起來更酷的來選擇你的技術方向。要先進行更詳細的分析,然後再選擇你最感興趣的專業知識。
本文首發微信公眾號:前端先鋒
歡迎掃描二維碼關注公眾號,每天都給你推送新鮮的前端技術文章
歡迎繼續閱讀本專欄其它高贊文章:
- 深入理解Shadow DOM v1
- 一步步教你用 WebVR 實現虛擬現實遊戲
- 13個幫你提高開發效率的現代CSS框架
- 快速上手BootstrapVue
- JavaScript引擎是如何工作的?從呼叫棧到Promise你需要知道的一切
- WebSocket實戰:在 Node 和 React 之間進行實時通訊
- 關於 Git 的 20 個面試題
- 深入解析 Node.js 的 console.log
- Node.js 究竟是什麼?
- 30分鐘用Node.js構建一個API伺服器
- Javascript的物件拷貝
- 程式設計師30歲前月薪達不到30K,該何去何從
- 14個最好的 JavaScript 資料視覺化庫
- 8 個給前端的頂級 VS Code 擴充套件外掛
- Node.js 多執行緒完全指南
- 把HTML轉成PDF的4個方案及實現