有時候自己會分不清,其實是因為前后端都了解,類似于全棧工程師,但又什么都不是很精通。那到底什么是前端、后端呢,我整理了一些企業(yè)要求級別的前端/后端基礎(chǔ),開發(fā)框架等。
Web前端開發(fā)
什么是 Web 前端?
Web前端,顧名思義是來做web的前端頁面的。這里所說的前端泛指web前端,也就是在web應(yīng)用中用戶可以看得見碰得著的東西。包括web頁面的結(jié)構(gòu)、web的外觀視覺表現(xiàn)以及web層面的交互實現(xiàn)。web前端分為網(wǎng)頁設(shè)計師、網(wǎng)頁美工、web前端開發(fā)工程師。首先網(wǎng)頁設(shè)計師是對網(wǎng)頁的架構(gòu)、色彩以及網(wǎng)站的整體頁面代碼,負(fù)責(zé)網(wǎng)頁美工只針對UI這塊兒的東西,比如網(wǎng)站是否做的漂亮。web前端開發(fā)工程師是負(fù)責(zé)交互設(shè)計的,需要和程序猿進(jìn)行交互設(shè)計的配合。
Web前端開發(fā)需要掌握的技術(shù):
1.熟練掌握前端開發(fā)技術(shù)(HTML5、JS、JSON、XHTML、CSS3),了解各項技術(shù)的相關(guān)標(biāo)準(zhǔn)
2.掌握Ajax異步編程,能夠?qū)懗龈咝阅?、可?fù)用的前端組件;
3.對OO、MVC、MVVM等編程思想、前端框架有深刻理解,熟練掌握一個前端框架(常用前端框架 Vuejs,AngularJS,React,Bootstrap,QUICK UI,移動端有:Frozen UI,weUI ,SUI,MUI,AUI)了解其原理(框架有很多,選擇兩三個主流的框架,熟練,深度了解才可以);
4.善于Web性能優(yōu)化,可訪問性、對SEO等有良好的體驗;理解表現(xiàn)層與數(shù)據(jù)層分離的概念、 Web語義化(這些也是在找工作中,很有用的加分項);
5.了解前端安全機制,熟悉HTTP協(xié)議以及瀏覽器緩存策略;
6.熟悉常見JS開發(fā)框架源碼實現(xiàn),(如:prototype、jQuery、Mootools,Ext, Dojo,underscore、YUI、Kissy),至少熟練一種(當(dāng)然也不要去選一些用的人很少的框架,要明白大項目都是團(tuán)隊做,不能自己搞一套);
7.擁有良好的代碼編寫,設(shè)計文檔撰寫的經(jīng)驗,熟練使用Git等版本控制工具;
8.對常見的瀏覽器兼容問題有清晰的理解,并有可靠的解決方案;如IE6/7/8/9、 Firefox、Safari、Chrome;
9.具有較高的審美(這個很重要,多去見識一些模板,高端的項目,就能感覺到有多大的差距)
web后端開發(fā)
什么是 Web 后端?
Web后端更多的是負(fù)責(zé)產(chǎn)品的服務(wù)技術(shù)實現(xiàn),包括業(yè)務(wù)邏輯,數(shù)據(jù)存儲和處理,消息隊列處理等。以及產(chǎn)品服務(wù)端接口實現(xiàn),包括與前端的接口,第三方的接口,服務(wù)體系內(nèi)部接口等。后端開發(fā)主要是對數(shù)據(jù)庫進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)邏輯。web后端的話可供開發(fā)的語言有 java、php、jsp、.NET 這些后端開發(fā)語言,并且要掌握幾個常用后端框架。
Web前端開發(fā)需要掌握的技術(shù):
1.目前多數(shù)企業(yè)要求對服務(wù)器端高并發(fā),大數(shù)據(jù)量處理經(jīng)驗(簡單的說就是優(yōu)化服務(wù)器處理高并發(fā)事務(wù)的能力)
2.精通 java,php,jsp,servlet,java bean,JMS,EJB,Jdbc,F(xiàn)lex開發(fā),對相關(guān)的工具、類庫以及框架非常熟悉,常用后端框架如 SSM(Spring+SpringMVC+MyBatis)框架集,Velocity,Hibernate,iBatis,OSGI等,對Web開發(fā)的模式有較深的理解(只少熟練掌握一套后端框架);
3.至少熟悉一種關(guān)系型數(shù)據(jù)庫,如:mysql,oracle等。熟練使用oracle、sqlserver、SQL Develpoer,PLSQL,MySQL Workbench等常用的數(shù)據(jù)庫管理工具,對數(shù)據(jù)庫有較強的設(shè)計能力
4.熟悉maven項目配置管理工具,熟悉tomcat、jboss等應(yīng)用服務(wù)器,同時對在高并發(fā)處理情況下的負(fù)載調(diào)優(yōu)有相關(guān)經(jīng)驗者優(yōu)先考慮
5.精通面向?qū)ο蠓治龊驮O(shè)計技術(shù),包括設(shè)計模式、UML建模等
6.熟悉網(wǎng)絡(luò)編程,具有設(shè)計和開發(fā)對外API接口經(jīng)驗和能力,同時具備跨平臺的API規(guī)范設(shè)計以及API高效調(diào)用設(shè)計能力
7.熟悉部分前端知識
總結(jié)
我感覺無論在知識的掌握深度上,還是知識掌握的寬度上,都是不夠的。
************************
web前端分為網(wǎng)頁設(shè)計師、網(wǎng)頁美工、web前端開發(fā)工程師。
首先網(wǎng)頁設(shè)計師是對網(wǎng)頁的架構(gòu)、色彩以及網(wǎng)站的整體頁面代碼負(fù)責(zé)。
網(wǎng)頁美工只針對UI這塊兒的東西,比如網(wǎng)站是否做的漂亮。
web前端開發(fā)工程師是負(fù)責(zé)交互設(shè)計的,需要和程序猿進(jìn)行交互設(shè)計的配合。
web前端需要掌握的有腳本技術(shù)javascript DIV+CSS現(xiàn)下最流行的頁面搭建技術(shù),ajax和jquery以及簡單的后端程序等。 后端的話可供開發(fā)的語言有asp、php、jsp、.NET 這些后端開發(fā)語言的話搭建環(huán)境都不一樣,具體如果你想學(xué)的話看是想從事前端部分還是后端程序部分。后端開發(fā)如果有一定的條件的話可以轉(zhuǎn)為軟件開發(fā)。不過要有一定的語言基礎(chǔ),類似java語言、C++等。關(guān)鍵是看你的興趣愛好。
這個到后期不會區(qū)分這么細(xì),做前端到后期也會懂一些后端的技術(shù),反之,后端也是。
在實際的開發(fā)過程中,我們當(dāng)前這樣定位前端、后端開發(fā)人員。
1)前端開發(fā)人員:精通JS,能熟練應(yīng)用JQuery,懂CSS,能熟練運用這些知識,進(jìn)行交互效果的開發(fā)。
2)后端開發(fā)人員:會寫Java代碼,會寫SQL語句,能做簡單的數(shù)據(jù)庫設(shè)計,會Spring和iBatis,懂一些設(shè)計模式等。
現(xiàn)在來看,對前后端的要求還是蠻低的,尤其是后端,新員工經(jīng)過實習(xí)之后都是可以參與到后端開發(fā)的,沒有太高的技術(shù)門檻,唯一需要做的就是先變成熟練工種,這個階段沒有涉及到設(shè)計模式、架構(gòu)、效率等一些列問題。在約的專家對我的主要建議就是從這里入手。
回家又百度了一下,看看網(wǎng)上對Web前端開發(fā)、Web后端開發(fā)分別是什么?
Web前端: 顧名思義是來做Web的前端的。我們這里所說的前端泛指Web前端,也就是在Web應(yīng)用中用戶可以看得見碰得著的東西。包括Web頁面的結(jié)構(gòu)、Web的外觀視覺表現(xiàn)以及Web層面的交互實現(xiàn)。
Web后端:后端更多的是與數(shù)據(jù)庫進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)邏輯。需要考慮的是如何實現(xiàn)功能、數(shù)據(jù)的存取、平臺的穩(wěn)定性與性能等。
我們再來看看大公司對前后端人員招聘的要求,通過這個角度看看前端、后端的技術(shù)要求:
Web前端:
1)精通HTML,能夠書寫語義合理,結(jié)構(gòu)清晰,易維護(hù)的HTML結(jié)構(gòu)。
2)精通CSS,能夠還原視覺設(shè)計,并兼容業(yè)界承認(rèn)的主流瀏覽器。
3)熟悉JavaScript,了解ECMAScript基礎(chǔ)內(nèi)容,掌握1~2種js框架,如JQuery
4)對常見的瀏覽器兼容問題有清晰的理解,并有可靠的解決方案。
5)對性能有一定的要求,了解yahoo的性能優(yōu)化建議,并可以在項目中有效實施。
Web后端:
1)精通jsp,servlet,java bean,JMS,EJB,Jdbc,F(xiàn)lex開發(fā),或者對相關(guān)的工具、類庫以及框架非常熟悉,如Velocity,Spring,Hibernate,iBatis,OSGI等,對Web開發(fā)的模式有較深的理解
2)練使用oracle、sqlserver、mysql等常用的數(shù)據(jù)庫系統(tǒng),對數(shù)據(jù)庫有較強的設(shè)計能力
3)熟悉maven項目配置管理工具,熟悉tomcat、jboss等應(yīng)用服務(wù)器,同時對在高并發(fā)處理情況下的負(fù)載調(diào)優(yōu)有相關(guān)經(jīng)驗者優(yōu)先考慮
4)精通面向?qū)ο蠓治龊驮O(shè)計技術(shù),包括設(shè)計模式、UML建模等
5)熟悉網(wǎng)絡(luò)編程,具有設(shè)計和開發(fā)對外API接口經(jīng)驗和能力,同時具備跨平臺的API規(guī)范設(shè)計以及API高效調(diào)用設(shè)計能力
從公司的招聘要求可以看到,做Web開發(fā),對前端和后端的要求是各自所不同的。而我目前的實際情況,也和這個差不多,但是,無論在知識的掌握程度上,還是知識掌握的寬度上,都是不夠的。
**********************
前端開發(fā)和后臺開發(fā)是有區(qū)別的,工作的內(nèi)容和負(fù)責(zé)的東西是完全的不同的,以下以網(wǎng)站的開發(fā)為例。
1、前端開發(fā)
前端開發(fā)現(xiàn)在一般指的就是web前端開發(fā)工程師,其負(fù)責(zé)是網(wǎng)站前端頁面也就是網(wǎng)頁的頁面開發(fā),簡單的說網(wǎng)站前端負(fù)責(zé)是東西是網(wǎng)站用戶可見的東西,如網(wǎng)頁上的特效、網(wǎng)頁的布局、圖片、視頻等內(nèi)容。網(wǎng)站前端工程師的工作內(nèi)容就是將美工設(shè)計的效果圖的設(shè)計成瀏覽器可以運行的網(wǎng)頁,并和后端開發(fā)工程師配合做網(wǎng)頁的數(shù)據(jù)顯示和交互。
2、后端開發(fā)
后端開發(fā)一般也叫做后臺,其負(fù)責(zé)是網(wǎng)站后臺邏輯的設(shè)計和實現(xiàn)還有用戶及網(wǎng)站的數(shù)據(jù)的保存和讀取。比如一般網(wǎng)站都是有用戶注冊和登錄的,用戶的注冊的信息通過前端發(fā)送給后端,后端將其保存在數(shù)據(jù)庫中,用戶登錄網(wǎng)站的時候,后端需要通過用戶輸入的用戶名和密碼是否與數(shù)據(jù)庫中的一致來判斷用戶是否有權(quán)限登錄,這是后臺開發(fā)中的一個最簡單的功能。
一、要弄清區(qū)別,首先要知道前端和后端的概念:
1)Web前端: 顧名思義是來做Web的前端的。這里所說的前端泛指Web前端,也就是在Web應(yīng)用中用戶可以看得見碰得著的東西。包括Web頁面的結(jié)構(gòu)、Web的外觀視覺表現(xiàn)以及Web層面的交互實現(xiàn)。
2)Web后端:后端更多的是與數(shù)據(jù)庫進(jìn)行交互以處理相應(yīng)的業(yè)務(wù)邏輯。需要考慮的是如何實現(xiàn)功能、數(shù)據(jù)的存取、平臺的穩(wěn)定性與性能等。
二、實際的開發(fā)過程中,前端、后端開發(fā)人員所要具備的技能:
1)前端開發(fā)人員:精通JS,能熟練應(yīng)用JQuery,懂CSS,能熟練運用這些知識,進(jìn)行交互效果的開發(fā)。
2)后端開發(fā)人員:會寫Java代碼,會寫SQL語句,能做簡單的數(shù)據(jù)庫設(shè)計,會Spring和iBatis,懂一些設(shè)計模式等。
三、總結(jié):
web前端分為網(wǎng)頁設(shè)計師、網(wǎng)頁美工、web前端開發(fā)工程師
首先網(wǎng)頁設(shè)計師是對網(wǎng)頁的架構(gòu)、色彩以及網(wǎng)站的整體頁面代碼負(fù)責(zé)
網(wǎng)頁美工只針對UI這塊的東西,比如網(wǎng)站是否做的漂亮
web前端開發(fā)工程師是負(fù)責(zé)交互設(shè)計的,需要和程序員進(jìn)行交互設(shè)計的配合。
web前端需要掌握的有腳本技術(shù)javascript DIV+CSS現(xiàn)下最流行的頁面搭建技術(shù),ajax和jquery以及簡單的后端程序等。 后端的話可供開發(fā)的語言有 asp、php、jsp、.NET 這些后端開發(fā)語言的話搭建環(huán)境都不一樣
前端開發(fā)主要是靜態(tài)用戶界面加上一些動態(tài)效果(JavaScript等實現(xiàn)),不涉及數(shù)據(jù)邏輯!例如:一個登陸頁面: 前端開發(fā)只要做好靜態(tài)頁面部分 ,加上鼠標(biāo)移入輸入框、移出輸入框的顏色變化;但是輸入用戶名、密碼 后登錄系統(tǒng)的話要連接數(shù)據(jù)庫,這個就需要后臺開發(fā)做邏輯處理了!
個人理解: 登錄跳轉(zhuǎn)那一步估計是后端做的工作吧,一旦驗證用戶名和密碼成功之后,后端程序?qū)崿F(xiàn)跳轉(zhuǎn)到下一網(wǎng)頁。
---------------------