做者:Paresh Sagarphp
翻譯:瘋狂的技術宅前端
原文:www.excellentwebworld.com/backend-vs-…web
未經許可嚴禁轉載算法
若是你是一位有志於全面瞭解先後端編程語言及框架的開發人員或創業者,那你來對地方了。本文將幫助你瞭解前端和後端技術之間的基本差別。mongodb
因此本文將想你闡述他們的技術棧,爲何咱們須要構建移動應用、網站或物聯網應用開發解決方案。數據庫
最重要的是,怎樣經過先後端編程語言和框架之間的完美協做來實現完整的解決方案**。**編程
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等等。
前端 | 後端 | |
---|---|---|
專業知識 | 前端 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 | - |
如下是世界上最流行的編程語言:
除了所涉及的技術以外,你對前端與後端開發人員的選擇取決於開發人員最重要的因素。
若是對美學和產品的感受對你來講相當重要,那麼你會傾向於將前端技術做爲職業和專業。另外一方面,若是你關注提升網站、應用程序或軟件的效率和響應能力,那麼你的方向就應該是後端開發。
前端設計師所作的很大一部分工做就是讓用戶在移動設備或 PC 屏幕上看到的東西看起來都很棒並且易於使用。相反,後端開發人員惟一關注的美學是編寫乾淨的代碼。
若是你開始認爲在前端 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 技術棧開發人員能夠成爲任何這些技術堆棧的專家。
若是你是開發人員,請不要根據哪一個聽起來更酷的來選擇你的技術方向。要先進行更詳細的分析,而後再選擇你最感興趣的專業知識。