Web前端開(kāi)發(fā)工程師是一個(gè)很新的職業(yè),在國(guó)內(nèi)乃至國(guó)際上真正開(kāi)始受到重視的時(shí)間不超過(guò)7年。Web前端開(kāi)發(fā)是從網(wǎng)頁(yè)制作演變而來(lái)的,名稱上有很明顯的時(shí)代特征。在互聯(lián)網(wǎng)的演化進(jìn)程中,網(wǎng)頁(yè)制作是Web 1.0時(shí)代的產(chǎn)物,那時(shí)網(wǎng)站的主要內(nèi)容都是靜態(tài)的,用戶使用網(wǎng)站的行為也以瀏覽為主。
2005年以后,互聯(lián)網(wǎng)進(jìn)入Web 2.0時(shí)代,各種類似桌面軟件的Web應(yīng)用大量涌現(xiàn),網(wǎng)站的前端由此發(fā)生了翻天覆地的變化。網(wǎng)頁(yè)不再只是承載單一的文字和圖片,各種豐富媒體讓網(wǎng)頁(yè)的內(nèi)容更加生動(dòng),網(wǎng)頁(yè)上軟件化的交互形式為用戶提供了更好的使用體驗(yàn),這些都是基于前端技術(shù)實(shí)現(xiàn)的。
隨著Web 2.0概念的普及和W3C組織的推廣,網(wǎng)站重構(gòu)的影響力正以驚人的速度增長(zhǎng)。XHTML+CSS布局、DHTML和Ajax像一陣旋風(fēng),鋪天蓋地席卷而來(lái),包括新浪、搜狐、網(wǎng)易、騰訊、淘寶等在內(nèi)的各種規(guī)模的IT企業(yè)都對(duì)自己的網(wǎng)站進(jìn)行了重構(gòu)。
為什么它們會(huì)對(duì)自己的網(wǎng)站進(jìn)行重構(gòu)呢?有兩個(gè)方面的原因:第一,根據(jù)W3C標(biāo)準(zhǔn)進(jìn)行重構(gòu)后,可以讓前端的代碼組織更有序,顯著改善網(wǎng)站的性能,還能提高可維護(hù)性,對(duì)搜索引擎也更友好;
第二,重構(gòu)后的網(wǎng)站能帶來(lái)更好的用戶體驗(yàn),用XHTML+CSS重新布局后的頁(yè)面,文件更小,下載速度更快。
網(wǎng)站重構(gòu)的目的僅僅是為了讓網(wǎng)頁(yè)更符合Web標(biāo)準(zhǔn)嗎?不是!重構(gòu)的本質(zhì)是構(gòu)建一個(gè)前端靈活的類MVC框架,即HTML作為信息模型(Model),CSS控制樣式(View),JavaScript負(fù)責(zé)調(diào)度數(shù)據(jù)和實(shí)現(xiàn)某種展現(xiàn)邏輯(Controller)。同時(shí),代碼需要具有很好的復(fù)用性和可維護(hù)性。這是高效率、高質(zhì)量開(kāi)發(fā)以及協(xié)作開(kāi)發(fā)的基礎(chǔ)。
DHTML可以讓用戶的操作更炫,更吸引眼球;Ajax可以實(shí)現(xiàn)無(wú)刷新的數(shù)據(jù)交換,讓用戶的操作更流暢。對(duì)于普通用戶來(lái)說(shuō),一個(gè)網(wǎng)站是否專業(yè)、功能是否強(qiáng)大,服務(wù)器端是用J2EE+Oracle的強(qiáng)大組合,還是用ASP+Access的簡(jiǎn)單組合,并沒(méi)有太明顯的區(qū)別。但是,前端的用戶體驗(yàn)卻給了用戶直觀的印象。
隨著人們對(duì)用戶體驗(yàn)的要求越來(lái)越高,前端開(kāi)發(fā)的技術(shù)難度越來(lái)越大,Web前端開(kāi)發(fā)工程師這一職業(yè)終于從設(shè)計(jì)和制作不分的局面中獨(dú)立出來(lái)。
2三要素編輯
Web前端開(kāi)發(fā)技術(shù)包括三個(gè)要素:HTML、CSS和JavaScript,但隨著RIA的流行和普及,F(xiàn)lash/Flex、Silverlight、XML和服務(wù)器端語(yǔ)言也是前端開(kāi)發(fā)工程師應(yīng)該掌握的。Web前端開(kāi)發(fā)工程師既要與上游的交互設(shè)計(jì)師、視覺(jué)設(shè)計(jì)師和產(chǎn)品經(jīng)理溝通,又要與下游的服務(wù)器端工程師溝通,需要掌握的技能非常多。這就從知識(shí)的廣度上對(duì)Web前端開(kāi)發(fā)工程師提出了要求。如果要精于前端開(kāi)發(fā)這一行,也許要先精十行。然而,全才總是少有的。所以,對(duì)于不太重要的知識(shí),我們只需要“通”即可。但“通”到什么程度才算夠用呢?對(duì)于很多初級(jí)前端開(kāi)發(fā)工程師來(lái)說(shuō),這個(gè)問(wèn)題是非常令人迷惑的。
前端開(kāi)發(fā)的入門門檻其實(shí)非常低,與服務(wù)器端語(yǔ)言先慢后快的學(xué)習(xí)曲線相比,前端開(kāi)發(fā)的學(xué)習(xí)曲線是先快后慢。所以,對(duì)于從事IT工作的人來(lái)說(shuō),前端開(kāi)發(fā)是個(gè)不錯(cuò)的切入點(diǎn)。也正因?yàn)槿绱耍岸碎_(kāi)發(fā)領(lǐng)域有很多自學(xué)成“才”的同行,但大多數(shù)人都停留在會(huì)用的階段,因?yàn)楹竺娴膶W(xué)習(xí)曲線越來(lái)越陡峭,每前進(jìn)一步都很難。另一方面,正如前面所說(shuō),前端開(kāi)發(fā)是個(gè)非常新的職業(yè),對(duì)一些規(guī)范和最佳實(shí)踐的研究都處于探索階段??傆行碌撵`感和技術(shù)不時(shí)閃現(xiàn)出來(lái),例如CSS sprite、負(fù)邊距布局、柵格布局等;各種JavaScript框架層出不窮,為整個(gè)前端開(kāi)發(fā)領(lǐng)域注入了巨大的活力;瀏覽器大戰(zhàn)也越來(lái)越白熱化,跨瀏覽器兼容方案依然是五花八門。為了滿足“高可維護(hù)性”的需要,需要更深入、更系統(tǒng)地去掌握前端知識(shí),這樣才可能創(chuàng)建一個(gè)好的前端架構(gòu),保證代碼的質(zhì)量。
3具備條件編輯
一位好的Web前端開(kāi)發(fā)工程師在知識(shí)體系上既要有廣度,又要有深度,所以很多大公司即使出高薪也很難招聘到理想的前端開(kāi)發(fā)工程師?,F(xiàn)在說(shuō)的重點(diǎn)不在于講解技術(shù),而是更側(cè)重于對(duì)技巧的講解。技術(shù)非黑即白,只有對(duì)和錯(cuò),而技巧則見(jiàn)仁見(jiàn)智。以前會(huì)Photoshop和Dreamweaver就可以制作網(wǎng)頁(yè),現(xiàn)在只掌握這些已經(jīng)遠(yuǎn)遠(yuǎn)不夠了。無(wú)論是開(kāi)發(fā)難度上,還是開(kāi)發(fā)方式上,現(xiàn)在的網(wǎng)頁(yè)制作都更接近傳統(tǒng)的網(wǎng)站后臺(tái)開(kāi)發(fā),所以現(xiàn)在不再叫網(wǎng)頁(yè)制作,而是叫Web前端開(kāi)發(fā)。Web前端開(kāi)發(fā)在產(chǎn)品開(kāi)發(fā)環(huán)節(jié)中的作用變得越來(lái)越重要,而且需要專業(yè)的前端工程師才能做好,這方面的專業(yè)人才近兩年來(lái)備受青睞。Web前端開(kāi)發(fā)是一項(xiàng)很特殊的工作,涵蓋的知識(shí)面非常廣,既有具體的技術(shù),又有抽象的理念。簡(jiǎn)單地說(shuō),它的主要職能就是把網(wǎng)站的界面更好地呈現(xiàn)給用戶。
如何才能做得更好呢?
第一,必須掌握基本的Web前端開(kāi)發(fā)技術(shù),其中包括:CSS、HTML、DOM、BOM、Ajax、JavaScript等,在掌握這些技術(shù)的同時(shí),還要清楚地了解它們?cè)诓煌瑸g覽器上的兼容情況、渲染原理和存在的Bug。
第二,在一名合格的前端工程師的知識(shí)結(jié)構(gòu)中,網(wǎng)站性能優(yōu)化、SEO和服務(wù)器端的基礎(chǔ)知識(shí)也是必須掌握的。
第三,必須學(xué)會(huì)運(yùn)用各種工具進(jìn)行輔助開(kāi)發(fā)。
第四,除了要掌握技術(shù)層面的知識(shí),還要掌握理論層面的知識(shí),包括代碼的可維護(hù)性、組件的易用性、分層語(yǔ)義模板和瀏覽器分級(jí)支持,等等。
可見(jiàn),看似簡(jiǎn)單的網(wǎng)頁(yè)制作,如果要做得更好、更專業(yè),真的是不簡(jiǎn)單。這就是前端開(kāi)發(fā)的特點(diǎn),也是讓很多人困惑的原因。如此繁雜的知識(shí)體系讓新手學(xué)習(xí)起來(lái)無(wú)從下手,對(duì)于老手來(lái)說(shuō),也時(shí)常不知道下一步該學(xué)什么。
代碼質(zhì)量是前端開(kāi)發(fā)中應(yīng)該重點(diǎn)考慮的問(wèn)題之一。例如,實(shí)現(xiàn)一個(gè)網(wǎng)站界面可能會(huì)有無(wú)數(shù)種方案,但有些方案的維護(hù)成本會(huì)比較高,有些方案會(huì)存在性能問(wèn)題,而有些方案則更易于維護(hù),而且性能也比較好。這里的關(guān)鍵影響因素就是代碼質(zhì)量。CSS、HTML、JavaScript這三種前端開(kāi)發(fā)語(yǔ)言的特點(diǎn)是不同的,對(duì)代碼質(zhì)量的要求也不同,但它們之間又有著千絲萬(wàn)縷的聯(lián)系。
-
開(kāi)發(fā)工程師
+關(guān)注
關(guān)注
1文章
91瀏覽量
14945 -
WEB前端
+關(guān)注
關(guān)注
0文章
18瀏覽量
2541
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論