Web前端開發工程師是一個很新的職業,在國內乃至國際上真正開始受到重視的時間不超過5年。Web前端開發是從網頁製做演變而來的,名稱上有很明 顯的時代特徵。在互聯網的演化進程中,網頁製做是Web 1.0時代的產物,那時網站的主要內容都是靜態的,用戶使用網站的行爲也以瀏覽爲主。前端
2005年之後,互聯網進入Web 2.0時代,各類相似桌面軟件的Web應用大量涌現,網站的前端由此發生了翻天覆地的變化。網頁再也不只是承載單一的文字和圖片,各類富媒體讓網頁的內容更 加生動,網頁上軟件化的交互形式爲用戶提供了更好的使用體驗,這些都是基於前端技術實現的。web
隨着Web 2.0概念的普及和W3C組織的推廣,網站重構的影響力正以驚人的速度增加。XHTML+CSS佈局、DHTML和Ajax像一陣旋風,鋪天蓋地席捲而來,包括新浪、搜狐、網易、騰訊、淘寶等在內的各類規模的IT企業都對本身的網站進行了重構。瀏覽器
爲何它們會對本身的網站進行重構呢?有兩個方面的緣由:性能優化
第一,根據W3C標準進行重構後,可讓前端的代碼組織更有序,顯著改善網站的性能,還能提升可維護性,對搜索引擎也更友好;服務器
第二,重構後的網站能帶來更好的用戶體驗,用XHTML+CSS從新佈局後的頁面,文件更小,下載速度更快。 前端工程師
網站重構的目的僅僅是爲了讓網頁更符合Web標準嗎?不是!重構的本質是構建一個前端靈活的MVC框架,即HTML做爲信息模型(Model),CSS控 制樣式(View),JavaScript負責調度數據和實現某種展示邏輯(Controller)。同時,代碼須要具備很好的複用性和可維護性。這是高 效率、高質量開發以及協做開發的基礎。架構
DHTML可讓用戶的操做更炫,更吸引眼球;Ajax能夠實現無刷新的數據交換,讓用戶的操做更流暢。對於普通用戶來講,一個網站是否專業、功能是否強 大,服務器端是用J2EE+Oracle的強大組合,仍是用ASP+Access的簡單組合,並無太明顯的區別。可是,前端的用戶體驗卻給了用戶直觀的 印象。框架
隨着人們對用戶體驗的要求愈來愈高,前端開發的技術難度愈來愈大,Web前端開發工程師這一職業終於從設計和製做不分的局面中獨立出來。 工具
Web前端開發技術三要素佈局
Web前端開發技術包括三個要素:HTML、CSS和JavaScript,但隨着RIA的流行和普及,Flash/Flex、Silverlight、 XML和服務器端語言也是前端開發工程師應該掌握的。Web前端開發工程師既要與上游的交互設計師、視覺設計師和產品經理溝通,又要與下游的服務器端工程 師溝通,須要掌握的技能很是多。這就從知識的廣度上對Web前端開發工程師提出了要求。若是要精於前端開發這一行,也許要先通十行。然而,全才老是少有 的。因此,對於不過重要的知識,咱們只須要「通」便可。但「通」到什麼程度纔算夠用呢?對於不少初級前端開發工程師來講,這個問題是很是使人迷惑的。
前端開發的入門門檻其實很是低,與服務器端語言先慢後快的學習曲線相比,前端開發的學習曲線是先快後慢。因此,對於從事IT工做的人來講,前端開發是個不 錯的切入點。也正由於如此,前端開發領域有不少自學成「才」的同行,但大多數人都停留在會用的階段,由於後面的學習曲線愈來愈陡峭,每前進一步都很難。另 一方面,正如前面所說,前端開發是個很是新的職業,對一些規範和最佳實踐的研究都處於探索階段。總有新的靈感和技術不時閃現出來,例如CSS sprite、負邊距佈局、柵格佈局等;各類JavaScript框架層出不窮,爲整個前端開發領域注入了巨大的活力;瀏覽器大戰也愈來愈白熱化,跨瀏覽 器兼容方案依然是五花八門。爲了知足「高可維護性」的須要,須要更深刻、更系統地去掌握前端知識,這樣纔可能建立一個好的前端架構,保證代碼的質量。
Web前端開發工程師的具有條件
一位好的Web前端開發工程師在知識體系上既要有廣度,又要有深度,因此不少大公司即便出高薪也很難招聘到理想的前端開發工程師。如今說的重點不在於講解 技術,而是更側重於對技巧的講解。技術非黑即白,只有對和錯,而技巧則見仁見智。之前會Photoshop和Dreamweaver就能夠製做網頁,如今 只掌握這些已經遠遠不夠了。不管是開發難度上,仍是開發方式上,如今的網頁製做都更接近傳統的網站後臺開發,因此如今再也不叫網頁製做,而是叫Web前端開 發。Web前端開發在產品開發環節中的做用變得愈來愈重要,並且須要專業的前端工程師才能作好,這方面的專業人才近兩年來備受青睞。Web前端開發是一項 很特殊的工做,涵蓋的知識面很是廣,既有具體的技術,又有抽象的理念。簡單地說,它的主要職能就是把網站的界面更好地呈現給用戶。
如何才能作得更好呢?
第一,必須掌握基本的Web前端開發技術,其中包括:CSS、HTML、DOM、BOM、Ajax、JavaScript等,在掌握這些技術的同時,還要清楚地瞭解它們在不一樣瀏覽器上的兼容狀況、渲染原理和存在的Bug。
第二,在一名合格的前端工程師的知識結構中,網站性能優化、SEO和服務器端的基礎知識也是必須掌握的。
第三,必須學會運用各類工具進行輔助開發。
第四,除了要掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持,等等。
可見,看似簡單的網頁製做,若是要作得更好、更專業,真的是不簡單。這就是前端開發的特色,也是讓不少人困惑的緣由。如此繁雜的知識體系讓新手學習起來無從下手,對於老手來講,也時常不知道下一步該學什麼。
代碼質量是前端開發中應該重點考慮的問題之一。例如,實現一個網站界面可能會有無數種方案,但有些方案的維護成本會比較高,有些方案會存在性能問題,而有 些方案則更易於維護,並且性能也比較好。這裏的關鍵影響因素就是代碼質量。CSS、HTML、JavaScript這三種前端開發語言的特色是不一樣的,對 代碼質量的要求也不一樣,但它們之間又有着千絲萬縷的聯繫。