前端的就業相比于后端如何?
作為一名開發者,你可能會想:2019 年最好的軟件開發技術和編程語言會是什么?它們又是如何被應用在軟件開發當中的?如果你在思考這個問題,那就來對地方了。這篇文章將對前端和后端開發技術做一個對比,先從基本的開始,然后逐步比較它們的不同點,比如對開發技能的要求、發展潛力、職業生涯的發展和薪水,等等。
1、什么是前端開發?
前端開發主要涉及網站和 App,用戶能夠從 App 屏幕或瀏覽器上看到東西。簡單地說,能夠從 App 屏幕和瀏覽器上看到的東西都屬于前端。
網站和移動 App 的前端
我們就以你現在正在瀏覽的網頁為例。網頁上的內容、圖片、段落之間的空隙、左上角的圖標、右下角的通知按鈕,所有這些東西都屬于前端。
移動 App 的前端和網站是一樣的。例如,你所看到的內容、按鈕、圖片,它們都屬于前端。另外,因為移動設備的屏幕是可以觸摸的,所以應用程序對各種觸控手勢(比如放大 / 縮小、雙擊、滑動等)做出的響應也屬于前端,它們是前端的活動部分。
這些東西是由前端開發者開發出來的,他們使用了 Ionic 、 Swift 、 Kotlin 、 Bootstrap 、 Angular 、Vue 、 jQuery 、 React.js 等開發技術。后面我們會更多地介紹這些開發技術。
物聯網的前端
任何可以連接到互聯網的設備都是物聯網設備。你可能會好奇物聯網設備的前端會是什么樣的。任何一種智能設備,比如智能冰箱、遠程 POS 機、智能手表、智能錢包,它們都需要提供某種界面,這樣用戶才能操作這些設備。所以,這種界面就是一種交互媒介,組成這種界面的元素就是物聯網的前端。
但嚴格來說,物聯網設備并沒有真正的前端。不過它們都裝有固件,與移動 App 的前端類似。這些固件可以用各種編程語言來開發,比如 C 語言、 C++ 、 Lua 、 Python 或 JavaScript 。
2、什么是后端開發?
后端開發即“服務器端”開發,主要涉及軟件系統“后端”的東西。比如,用于托管網站和 App 數據的服務器、放置在后端服務器與瀏覽器及 App 之間的中間件,它們都屬于后端。簡單地說,那些你在屏幕上看不到但又被用來為前端提供支持的東西就是后端。
網站和移動 App 的后端
網站的后端涉及搭建服務器、保存和獲取數據,以及用于連接前端的接口。如果說前端開發者關心的是網站外觀,那么后端開發者關心的是如何通過代碼、API 和數據庫集成來提升網站的速度、性能和響應性。
與前端類似,移動 App 的后端與網站后端是一樣的。為移動 App 搭建后端有這些選擇:云平臺(AWS、Firebase)、自己的服務器或 MBaaS(移動后端即服務,Mobile Backend as a Service)。
后端開發使用 Ruby 、 Apache 、 Nginx 、 PHP 、 MySQL 、 MongoDB 等技術。后面我們會更多地介紹這些開發技術。
物聯網的后端
云平臺是物聯網后端的一個重要組件。有證據表明,大部分物聯網設備極度依賴云服務器,它們通過服務器上傳、處理和下載數據。
高端物聯網解決方案的后端甚至涉及人工智能和機器學習。
物聯網項目的后端平臺包括 Amazon IoT、Google Cloud、MQTT Broker、IFTTT,等等。
展示方式
前端指的是用戶可見的界面,網站前端頁面也就是網頁的頁面開發,比如網頁上的特效、布局、圖片、視頻,音頻等內容。前端的工作內容就是將美工設計的效果圖的設計成瀏覽器可以運行的網頁,并配合后端做網頁的數據顯示和交互等可視方面的工作內容。后端是指用戶看不見的東西,通常是與前端工程師進行數據交互及網站數據的保存和讀取,相對來說后端涉及到的邏輯代碼比前端要多的多,后端考慮的是底層業務邏輯的實現,平臺的穩定性與性能等。
所用技術
前端開發用到的技術包括但不限于html5、css3、Javascript、jquery、Bootstrap、Node.js 、Webpack,AngularJs,ReactJs,VueJs等技術。后端開發 以java為例 主要用到的 是包括但不限于Struts spring springmvc Hibernate Http協議 Servlet Tomcat服務器等技術。
工作職責
前端工程師主要的工作職責分為三大部分,分別是傳統的Web前端開發,移動端開發和大數據呈現端開發。Web前端開發主要針對的是PC端開發任務;移動端開發則包括Android開發、iOS開發和各種小程序開發,在移動互聯網迅速發展的帶動下,移動端的開發任務量是比較大的,隨著5G標準的落地,未來移動端的開發任務將得到進一步的拓展;大數據呈現則主要是基于已有的平臺完成最終分析結果的呈現,呈現方式通常也有多種選擇,比如大屏展示等。后端工程師的主要職責也集中在三大部分,分別是平臺設計、接口設計和功能實現。平臺設計主要是搭建后端的支撐服務容器;接口設計主要針對于不同行業進行相應的功能接口設計,通常一個平臺有多套接口,就像衛星導航平臺設有民用和軍用兩套接口一樣;功能實現則是完成具體的業務邏輯實現。知識結構
在知識結構方面,前端開發涉及到的內容包括Html、CSS、JavaScript、Android開發(采用Java或者kotlin)、iOS開發(采用OC或者Swift)、各種小程序開發技術(類Html),隨著前端開發任務的不斷拓展,前端開發后端化也是一個較為明顯的趨勢,比如Nodejs的應用。后端開發通常需要根據業務場景進行不同語言的選擇,另外后端開發的重點在于算法設計、數據結構、性能優化等方面,在具體的功能實現部分可以采用Java、Python或者PHP等編程語言來實現。對于不少中小企業來說,后端開發通常都會采用開源的開發平臺,這樣就可以把精力集中在業務處理上,通常應用級程序員就可以解決問題,相應的開發成本也會有大幅度的下降。
應用范圍
從應用范圍來看,前端開發不僅被常人所知、且應用場景也要比后端廣泛的太多太多。
一、PC (Personal Computer) 即個人電腦。目前電腦端仍是前端一個主要的領域,主要分為面向大眾的各類網站,如新聞媒體、社交、電商、論壇等和面向管理員的各種 CMS (內容管理系統)和其它的后臺管理系統。
二、Web App 是指使用 Web 開發技術,實現的有較好用戶體驗的 Web 應用程序。它是運行在手機和桌面端瀏覽中,隨著移動端網絡速度的提升,Web App 為我們提供了很大的便利。此外近兩年 Google 提出了一種新的 Web App 形態,即 PWA(漸進增強 Web APP) 。
三、WeChat (微信) 這個平臺,擁有大量的用戶群體,因此它也是我們前端開發另一個重要的領域。微信的公眾號與訂閱號為市場營銷和自媒體從業者,打造了一個新的天地。
四、Hybrid App (混合應用) 是指介于 Web App、原生 App (主要是 Android 或 iOS )之間的 App,它兼具原生 App 良好用戶交互體驗的優勢和 Web App 跨平臺開發的優勢。
五、Game(游戲),HTML5 游戲從 2014 年 Egret 引擎開發的神經貓引爆朋友圈之后,就開始一發不可收拾。不過現在游戲開發變得越來越復雜,需要制作各種炫麗炫麗的效果,還要制作各炫麗于 2D 或者 3D 的場景。
六、Desktop桌面應用軟件,就是我們日常生活中電腦中安裝的各類軟件。早期要開發桌面應用程序,就需要有專門的語言 UI (界面) 庫支持,如 C++ 中的 Qt 庫、MFC 庫,Java 的 Swing、Python 的 PyQT 等,否則語言是沒辦法進行快速界面開發。
七、Server Node.js 一發布,立刻在前端工程師中引起了軒然大波,前端工程師們幾乎立刻對這一項技術表露出了相當大的熱情和期待。看到 Node.js 這個名字,初學者可能會誤以為這是一個 Java 應用,事實上,Node.js 采用 C++ 語言編寫而成,是一個 Java 的運行環境。