前端的認識和看法,認識看法
1. 什麼是前端 ?
就像一場足球比賽,有人做前鋒,有的是中場戰將,有的是後衛,有的是候補等等,每個人在不同的位置上都做著不同的事,最終完成一場完美的比賽,前端在這裡有點類似前鋒,它需要將球最後臨門一腳射到球門裡。
前端它是一個工作,它的工作領域是瀏覽器,它即要跟美工、設計打交道又要懂點後台代碼,知道ajax怎麼從後台拿資料,介面怎麼調用,最主要的是把美工的圖合成完成的網頁呈現在使用者面前,需要實現網頁的互動效果。
前端處於設計與背景中間領域,起到承上啟下的作用,這也要求前端工程師的知識面在橫向上必須要廣。伺服器技術要懂,產品與互動也要懂。
它需要掌握三個基本的技能:HTML,CSS, javascript。另外還需要懂點PHP或者其他應用在Web上的程式設計語言。
前端工作師主要面向使用者、瀏覽器、資料介面。
2. 前端工程師的價值主要體現在哪裡?
(1)讓使用者更便捷的擷取資訊。拿到psd,產出線上的代碼,中間有很多細節需要去認真對待。表單的各種互動,頁面的不同元素(地區)間的資訊互動,都需要依靠自己的技術能力和自己對使用者的感知去完成。
(2)讓前端更加規範和標準。不斷看各種規範,比較不同版本的區別,並思考引入的新特性的意義(技術或商業)。關注這個行業的最新發展,找出創新點,把自己對問題或bug的解決思路或方案總結並分享,為自己的公司、同行以及整個行業貢獻自己的力量,推動前端的發展。
深入學習前端,需要做很多,前端各類庫與架構的架構設計,w3c各種標準的深入研究,對於javascript語言本身的研究,對瀏覽器的原理分析,對於網路傳輸協議的原理分析等等。
3. 需要掌握的技能?
(1)解決瀏覽器安全色問題。前端需要懂得至少三種瀏覽器核心的介面,還要面對各種莫名其妙的bug,前端的技術也是日新月異,css3的規範標準什麼時候確定還是未知。
(2)橫向技能面要廣。懂互動設計,懂視覺設計,略懂後台技術,精通http協議,linux操作,shell, vim, git, svn;至少熟練一門後端語言(java, c++, php, python),至少使用過一個MVC開發架構,還有前端的各種開源項目(jquery, requirejs, seajs, bootstrap, yui…);要靈活運用“物件導向”,“面向過程”,“函數式”的編程方法;還要懂設計模式,富用戶端應用的常用架構模式。
(3)縱向技能要深。js, css, html5, css3…
(4)關注使用者體驗,懂得互動設計。幫忙產品經理和互動設計師校正錯誤是前端工程師的義務和責任。作為頁面的實現者,如果不能提前預測出可能存在的問題,後期的錯誤會越來越多。
4. 應該具備怎樣的知識結構?
圖片地址:http://www.zhihu.com/question/19588629
5. 前端在研發團隊的位置?
比較理想的情況是,前端的輸入依然是psd稿,如果產品和設計能力不夠,還可能需要前端參與互動設計。輸出則是一個可以工作的模組或頁面。前端直接從伺服器模板(php, jsp)開始工作,前後端同學在開始工作前寫好頁面應該用的變數以及ajax通訊的介面,隨後獨立開發,最後連調測試。這種開始方式,前端可以根據介面和資料結構來設計頁面的html結構和css結構,把冗餘工作降到最低。這樣會讓前端發揮更大的主觀能動性,也可以讓後台更加關注底層演算法與資料存放區於通訊的邏輯。
6. 前端工程師的未來?
前端工程師一般講有三條路可走,一條向前走,一條向後走,一條一直做前端,深入下去。向前就是往使用者體驗與互動設計甚至產品設計師上走,這最能體驗前端價值,即使用者體驗。向後走是做web開發,往資料庫和後台開始方向走,不再區分前後端,大家深入產品的研發實現,這條路就是與軟體工程師融合的路,這時的價值就體現在業務功能的實現上。最後就是一直深入做前端開發,對各種前端類庫架構的架構設計,對瀏覽器原理的研究和js的研究,對網路傳輸協議原理分析等等,這條路因為要涉及很多原理與根本性的東西,走的人也不是很多。
前端的未來則是:有越來越多的軟體開始在瀏覽器裡運行,隨著google和Firefox的webos的發展,甚至在不久的將來,瀏覽器的api,會替代作業系統的sdk成為軟體開發的標準。隨著html5的發展,瀏覽器裡啟動並執行早已不是簡單的頁面,而是複雜的web應用。前端工程師也早已不是頁面製作,而是web應用工程師。而未來究竟是web時代還是app時代仍是一個難以回答的問題。
參考:http://blog.tianya.cn/post-5620717-83777702-1.shtml
http://kingzs70.sinaapp.com/2013/05/11/my_view_on_the_career_development_of_web_front_end