淺談web前端開發

       有部分同窗和朋友問到過我相關問題。利用週末我就淺淺地談談我對web前端開發的理解和體會,僅僅能淺淺談談,高手請本身主動跳過本篇文章。css

畢竟我現在經驗並不是很是足,連project師都算不上,更不用說大牛了。今天也不談技術。技術很是多人比我掌握得更好,也大同小異。但是每個人的理解體會是不同的。html

     對前端開發的三個總體理解和體會

       我對前端開發的總體體會有三:前端

       第一:雜而難,難度甚至超過了通常的後臺開發,假設有人認爲前端開發簡單僅僅能說明他尚未入門。web

       第二:web前端開發正在向響應式和移動端方向大步邁進。面試

       第三:前端project師事實上就是編程技術人員,用一句話來形容「比UI設計懂技術,比技術人員更懂交互」。固然也有人說前端project師是project師中的設計師,是設計師中的project師。既然是編程工做。那就不會作一生。畢竟太累。認真敲幾年代碼而後去賣水果吧,還望師弟師妹們來照應我生意。
chrome

       網頁製做與web前端開發

       前端開發project師是一個比較新的職業。在國內乃至國際上開始受到重視的時間不超過幾年。互聯網進入2.0時代後,web開發技術獲得了空前的發展,尤爲是前端技術。近幾年,隨着用戶對體驗的要求愈來愈高,前端開發技術難度也愈來愈大。之前設計和製做不分的職位也最終分爲UI設計師和web前端開發project師(前端開發師)兩個職位。分別向藝術和技術的方向縱向發展編程

       從技術體系上講,前端開發師需要掌握和了解的東西許多。有些大牛用龐雜來形容。windows

       幾年前,尚未前端開發的時候咱們叫作網頁製做,主要內容都是靜態的頁面。用戶也是以瀏覽爲主,而現在發生了翻天覆地的變化,網頁再也不僅僅是承載單一的文字和圖片,各類富媒體讓頁面內容更加生動,更注重用戶體驗。後端

       曾經會平面設計軟件、DW和簡單的HTML、CSS、JS就可以製做網頁,現在只掌握這些已經遠遠不夠了,假設只掌握這些連工做機會都很是少。無論是開發難度。仍是開發方式。現在的web前端開發都接近傳統的站點後臺開發。我以爲比通常的後臺開發更復雜。一個站點或者移動應用是否專業、功能是否強大。server端是用J2EE+Oracle組合仍是ASP+Access組合。並無太明顯的差異,但是,前端的用戶體驗卻給了用戶直觀的印象。因此現在不不過網頁製做。而是web前端開發。大部分人以爲是web前端開發代替了曾經的網頁製做,我以爲現在網頁製做和web前端開發的崗位同一時候存在。設計模式

假設只掌握曾經網頁製做的技術,那麼現在仍是叫網頁製做師(我在招聘網頁上也看到很多網頁製做師這個崗位),並不能稱之爲web前端project師。

       Web前端開發通常要掌握哪些技術和具有哪些條件?

       第1、要掌握之前網頁製做師掌握的基本技術。如各類頁面佈局,面向對象編程,JS模塊化編程。設計模式,前端MVC等等。

       第2、站點性能優化,SEO。如儘可能下降HTTP請求次數、cssSprites圖片整合技術、合併css與js、運用CDN技術。下降DNS查找次數、避免重定向等。

       第3、要會UI設計。固然在一些相對較小的公司前端project師也擔任着UI設計的角色。在大公司儘管有專業的UI設計師,但是前端project師會UI設計能幫助你更準確的理解設計師的意圖。在原型不完整的時候也能正確的反饋設計缺陷,將問題阻擋在設計的環節,會大大下降UI bug數量。比方。設計師會給出理想狀態下的容器樣式,卻每每忽略了文字溢出折行、長連續字符、容器寬高是否適應內容尺寸變化而變化,溢出部分是做截字仍是隱藏等諸多細節,因爲設計師不必定懂「邊界值測試」的道理,而這些問題每每在測試階段才被發現,因此,假設能在拿到UI設計稿時就提醒設計師補充完整這些場景,天然下降測試迴歸次數。

      第4、至少要會一門後臺編程語言。職業的特殊性決定了咱們需要跟後端工做者頻繁的溝通。假設僅僅顧頁面實現,不考慮後臺。寫出來的頁面也有一部分是廢棄代碼,在後臺進行數據交互的時候用不了。另外一方面就是從招聘信息可以得知。現在差點兒所有公司前端開發崗位都明白要求會後臺語言,在實際工做中可能也要作client和server端之間的數據交互等。


      第5、掌握各類瀏覽器兼容解決的方法。國內和國際主流瀏覽器種類多,內核不統一,如以Trident爲內核的IE、以Gecko爲內核的FireFox、以Presto爲內核的Opera、以Webkit爲內核的google chrome和Safari等。這給咱們前端開發添加了很是多困難,也是大多數人頭疼的事情。且不說眼下市面在有這麼多的瀏覽器,就只單一的IE系列家族的問題也夠多的了,特別是IE6,IE7。下圖是本月對上個月全球瀏覽器市場統計排行,IE瀏覽器用戶任然超過百分之五十。雖然2016年1月起,微軟將中止對舊版IE瀏覽器的支持。【微軟相關原新聞連接請猛擊這裏】 但是我相信近期很是多年以內IE低版本號瀏覽器仍是會佔比較大的比例。消亡還需時日。


      第6、必須學會運用各類工具進行輔助開發。

      第7、除了掌握技術層面的知識。還有掌握理論層面的知識。包含渲染原理。代碼的可維護性,組件的易用性。分層語義模板等等。

      第8、要有細心和耐心。和UI設計同樣,咱們必須精確到每一個像素,耐心也體現在多方面,比方讓初期開發人員頭疼的兼容問題,假設編碼不夠規範,解決兼容問題的時間遠遠超過了頁面實現的時間。

      第9、熱愛並不斷學習新技術。

前端差點兒天天都有新技術產生,從事這一行,在打牢基礎的狀況下要不斷學習新技術。包含開發流程部署,預處理技術,前端框架(如RequireJS、ReactJS、AngularJS等等),移動終端,標準規範等。

      淺談本身的體會

       與server端語言先慢後快的學習曲線相比,前端開發的學習曲線是先快後慢。因此現在有很是多學生或者已從事工做了的人都開始想涌入web前端開發的潮流,並自學成「才」。但我知道大多數人都停留在會用的階段。因爲要想成爲一名真正的web前端開發師每前進一步都很是難。雖然有的人天天都利用工做之餘學習。卻仍是學不精,因而處於糾結迷茫的狀態。還有一方面,正如開篇所說。這仍是一個比較新的職業,對一些規範和最佳實踐的研究都處於探索階段,一些新的技術隨時都會閃現出來,好比:瀏覽器大戰也愈來愈白熱化,跨瀏覽器兼容方案依舊五花八門,眼下我所在的公司通常要求咱們兼容到IE7,曾常常常遇到這樣的狀況。好不easy把IE各個版本號都兼容了,高興之餘又發現在360瀏覽器上出現了bug。沒辦法,熬夜奮戰唄。

       前端開發project師是一個易學難精的職業,咱們必須深刻、系統地學習並掌握前端知識,假設簡單地自學一下就能成爲web前端project師。那我想現在市場上也不會出現高薪找不到前端project師的狀況了。有經驗的web前端開發project師都知道,要精通這一行,必須先精通十行。有一些有經驗的前端project師,在不斷尋求新的技能上的突破,最明顯的一點體現是。開始關注「底層協議」,即HTTP、第三方應用、系統對接、製造工具、工做流程等,這時思考的重點已經脫離了「切頁面」,變爲「出方案「,比方要架設一個網站,能夠搭建網站框架,預見網站興許(前端)開發中的所有風險。並一一給出解決方式。

       說說半路出家的危與機,俗話說。隔行入隔山。每個行業自有其道。天然不是想作就作。

前端技術領域半路出家者很是多,咱們來分析一下轉行的心理。

第一。看到前端技術入門簡單、互聯網對前端技術的需求缺口大;第二,前端技術所見即所得、感受學習起來很是快;第三。我身邊的某某轉行做前端看上去不錯、我彷佛也可以。第四,我不喜歡我現在作的工做、想換行業、正好前端技術上手較快。就選他吧;固然還有第五,個人確瞭解並喜歡作Web前端。爲它付出再多都是值得的。

       新進入這一行或者轉行者的心態比較easy走兩個極端。一是僅僅看到新行業的好,二是僅僅認爲原工做很是糟糕

但不管是什麼行業,對本身的職業規劃的思考都應當先行一步。進入這一行必須先清晰的回答這些問題:

      1.我能作什麼?

      2.我不能作什麼?

      3.個人優點是什麼?

      4.個人劣勢是什麼?

      5.作這一行對我有何優勢?

      6.作這一行會讓我付出何種代價?

      7.怎樣定義成功?

      因爲面試的時候必定會被這些問題所挑戰。假設支支吾吾說不清楚,要麼是對本身將來不負責任,要麼骨子裏就是草根一族,習慣作什麼都走馬觀花淺嘗輒止。也難讓人信服你進入這一行是一個權衡再三看起來合理的選擇。

     相關誤區解釋

      有人以爲前端project師上班不幹別的。就是玩,弄點效果。攢兩頁面,搞點創新。固然這個表述很輕巧、甚至有調侃的味道,web前端工做絕對不是玩那麼簡單的。更不像之前的網頁製做那麼單一,有時候會爲一些效果的實現或優化,弄得加班加點。上週還因爲解決一個問題花了2天的時間。羞愧啊。

因此前端開發是一項很特殊的工做,前端project師的工做說得輕鬆,看似輕巧,但作起來絕對不是那麼的簡單。在開發過程當中涵蓋的東西很寬廣,既要從技術的角度來思考界面的實現,規避技術的死角,又要從用戶的角度來思考,如何才幹更好地接受技術呈現的枯燥的數據,更好的呈現信息。

      在入行初期。很是多人過於着迷。從而陷入了迷途。比方有人糾結因而否將dt、dd的樣式清除從reset.css中拿掉,緣由是認爲這兩個標籤的清除樣式會耗費一些渲染性能。或者是否需要將for循環改成while循環以提升js運行速度。雖然這些考慮看上去是合理的,但並不是性能的瓶頸所在,也就是說。你花了很是大力氣重構的代碼帶來的頁面性能提高,每每還不如將兩個css文件合成一個帶來的提高明顯。就比如用一把米尺量東西,不是必需精確到小數點後10位,因爲精確到小數點後2位就已是不許確的了。這樣的技術誤區常常讓人撿了芝麻丟了西瓜。

     對本身學習和工做的要求

      N.C.Zakas之前勉勵過你們,現在成爲了我對本身的要求和對已結肯定要走Web前端開發方向的人的建議:熱愛你的工做。熱愛跨瀏覽器開發帶來的挑戰、熱愛互聯網技術的種種異端,熱愛業內的同行,熱愛你的工具。互聯網發展太快了,假設你不熱愛它的話,不可能跟上它的步伐。

這意味着你必須多閱讀。多動手,保證本身的才幹與日俱增。要爲怎樣編寫易於維護、高質量的前端代碼奮鬥。

下了班也不能閒着。要作一些對本身實用的事兒。

可以參與一些開源軟件的開發,讀讀好書,看看牛人的博客。經常參加一些會議,看看別人都在幹什麼。

要想讓本身高速成長,有很是多事兒可以去作,相信付出必定會有回報。


         此次就分享到這裏。一個上午就這樣過去了,餓了,該去作中午餐了。關於前端開發詳細相關技術和詳細怎麼學習發展下次我會繼續分享。

         最後,因時間倉促。資質有限,文中表述僅表明我的觀點,不許確的地方還望見諒,歡迎嚴厲地指正。


相關文章
相關標籤/搜索