很多人并不了解前端開發(fā)到底是什么,即使是那些從事相關(guān)工作的業(yè)內(nèi)人員也不是很清楚,這點在我工作的幾年中深有體會,甚至有些時候整個項目下來本來應(yīng)該幾個人員合作完成的內(nèi)容完全由一個人來實現(xiàn),當(dāng)然這樣的結(jié)果常常并不理想,所以如果你打算學(xué)習(xí)前端開發(fā)工作事先了解下前端開發(fā)的相關(guān)內(nèi)容,比如工作范圍、存在問題、工作標(biāo)準(zhǔn)、工作要求等等。
1.被誤解的前端開發(fā)
什么是前端開發(fā)呢?大多數(shù)人的回答可能是不就是設(shè)計網(wǎng)頁的美工嘛,也有些人認(rèn)為那些會使用 Dreamware這些編輯器完成一些網(wǎng)頁功能就是前端開發(fā)了……因為大家對前端開發(fā)的認(rèn)識不同所以對于前端開發(fā)工作內(nèi)容也有很大不同,比如很多人覺的美工就是前端,他們認(rèn)為美工應(yīng)該完成所有的前端工作,但是真實的美工大多可能是從一些平面設(shè)計專業(yè)轉(zhuǎn)行過來的,他們一點也不了解軟件到底是什么,指望這些人去完成符合后端期待的前端實現(xiàn),根本不可能。那么到底是什么原因造成大家對前端開發(fā)工作的誤解呢?
造成前端開發(fā)工作誤解很大原因和Web的發(fā)展有密切的關(guān)系。在最初的Web發(fā)展階段,網(wǎng)頁主要以展示為主,內(nèi)容基本上都是靜態(tài)的,從事相關(guān)工作的人員要求很低,只要可以**頁面的整齊美觀就好。但是自2005年Web進入2.0時代后,網(wǎng)頁的功能 越來越豐富,內(nèi)容不再只是靜態(tài)頁面,而且和用戶交互也逐步增加,對于這種變化使得前端的開發(fā)也變得越來越復(fù)雜,對于開發(fā)人員的要求也越來越高。
另外最初從事網(wǎng)站開發(fā)的人員只要掌握那些制作網(wǎng)頁的工具就好,更多的時間更側(cè)重于后端的開發(fā)工作。他們隨著網(wǎng)頁功能的變化走到現(xiàn)在,依然在負(fù)責(zé)網(wǎng)頁功能的實現(xiàn),這也就不難讓人對前端工作產(chǎn)生誤解了。
2.前端開發(fā)的職責(zé)
在工作中前端的工作范圍很難界定,因為它會涉及到網(wǎng)站開發(fā)的方方面面。他需要確定UI設(shè)計師設(shè)計的界面是否可以通過技術(shù)實現(xiàn),同時需要按照界面內(nèi)容和后端開發(fā)人員確定是否可以提供相關(guān)的數(shù)據(jù),所以作為前端工程師既需要有一定的審美眼光,**頁面的美觀,同時有需要關(guān)注前端代碼的質(zhì)量。
在傳統(tǒng)意義上的軟件開發(fā)一般都是首先考慮后端可以提供哪些服務(wù)來確定前端的界面內(nèi)容和風(fēng)格,在這樣的情況下,大多數(shù)情況下負(fù)責(zé)項目整體結(jié)構(gòu)的都是多年從事后端開發(fā)工作的人員。但是隨著web 的不斷發(fā)展,出現(xiàn)一種模式是前端先設(shè)計相關(guān)的界面和內(nèi)容,然后后端再設(shè)計方案實現(xiàn)相關(guān)的功能,這時候負(fù)責(zé)項目的就是前端開發(fā)人員,當(dāng)然這種模式下前端開發(fā)人員不僅需要掌握前端實現(xiàn)的相關(guān)技術(shù)同時還需要了解后端的實現(xiàn)技術(shù)。不過這種模式只是在一些博客中見到過,大多數(shù)情況下我們還是和種情況類似都是后端確定數(shù)據(jù)后再確定前端界面和內(nèi)容,不過這兩種不同的方式對于前端人員的要求和工作內(nèi)容還是有很大區(qū)別的。
3.前端開發(fā)的技能要求
雖然前端技術(shù)興起的時間不是很長,沒有明確的界限,不同的web 項目中要求的前端技術(shù)有所不同,但是還是有些技能是這些從業(yè)人員必須具備的,下面就是工作中前端開發(fā)人員必備技能的總結(jié)。
(1)HTML
HTML,簡單的說HTML就像一個骨架,整個網(wǎng)頁的結(jié)構(gòu)都是在HTML中定義的,而且HTML本身內(nèi)容并不復(fù)雜,只要掌握幾類常用的標(biāo)簽就好,如用于鏈接、顯示圖片、列表、表格、表單等。在實現(xiàn)前端的技術(shù)中HTML很容易,十分容易上手和學(xué)習(xí),但是編寫語義良好、整齊簡潔的HTML代碼需要大量的練習(xí)才可以,因為復(fù)雜的HTML結(jié)構(gòu)不僅不利于搜索引擎的檢索,而且對于使用CSS樣式和JavaScript實現(xiàn)一些效果也會很困難。
(2)CSS
CSS,樣式就是為定義好的HTML結(jié)構(gòu)添加一層外衣,使得頁面變得美觀,這種美好的樣式也是吸引用戶的方式。和HTML一樣CSS也不復(fù)雜,只要掌握一些常見的樣式就好。真正CSS部分要做到的就是使得CSS樣式簡潔、易讀、可維護、性能良好,要實現(xiàn)這些需要我們重點理解CSS選擇器以及繼承相關(guān)的內(nèi)容。
(3)JavaScript
JavaScript,通過HTML定義骨架、CSS添加外衣之后,要讓網(wǎng)頁變得富有活力就需要使用JavaScript,這一部分也是真正編程的部分。對于JavaScript要掌握的內(nèi)容就不像HTML、CSS那樣簡單,因為首先JavaScript是一種腳本語言,所以它具有很大的靈活性,有時候可能造成錯誤,另外不同瀏覽器之間的兼容性問題也可能造成JavaScript語言出現(xiàn)錯誤。鑒于如上這些原因在學(xué)習(xí)JavaScript語言時要特別注意,本套課程涵蓋基礎(chǔ)語法、面向?qū)ο?、函?shù)、事件、BOM和DOM操作、表單處理、錯誤處理機制等內(nèi)容,希望可以幫助大家更好的掌握J(rèn)avaScript。
(4)前端框架
框架技術(shù),隨著前端框架的出現(xiàn)很大程度上降低了工作難度,使得即使是從事后端工作的人員也可以編寫一個漂亮美觀的頁面。這些前端框架不僅統(tǒng)一了編碼方式同時還解決了瀏覽器兼容問題。雖然前端框架的應(yīng)用為開發(fā)帶來福音,但是也造成了誤解,很多人認(rèn)為只要掌握這些框架就好了,對于那些基礎(chǔ)內(nèi)容就沒必要再去掌握了,這點是非常錯誤的。我把接觸的前端框架分為兩類,針對CSS的框架、針對JavaScript的類庫。雖然前端框架這部分內(nèi)容并不在本套課程計劃之內(nèi),但是我計劃隨后針對jQuery、Bootstrap、AngularJS這三種框架做一系列的課程來完善我們在本套課程中的博客系統(tǒng),同時利用Bootstrap、AngularJS結(jié)合后端服務(wù)語言開發(fā)一個博客系統(tǒng)的管理系統(tǒng),希望可以幫助大家掌握三個經(jīng)典的前端框架,當(dāng)然除了這三個之外還有很多類似的內(nèi)容,如果大家覺的有需要可以在QQ交流群或者公眾號中發(fā)消息給我,我會盡可能為大家提供幫助。
(5) 調(diào)試
調(diào)試,不管是前端人員還是后端人員調(diào)試都是一項必不可少的技能,在調(diào)試的過程中發(fā)現(xiàn)頁面結(jié)構(gòu)的變化、樣式渲染效果、JavaScript代碼執(zhí)行情況以及后端返回數(shù)據(jù),甚至可以直接修改網(wǎng)頁的結(jié)構(gòu)和樣式。現(xiàn)在大部分瀏覽器都提供了供調(diào)試的控制臺,而且值得一提的是之前的火狐瀏覽器需要按照Firebug才可以,現(xiàn)在已經(jīng)不需要了,在火狐瀏覽器中已經(jīng)查找不到相關(guān)的插件了。