關於前端的趨勢和前端的誤區

前端工程師的缺少問題幾乎蔓延到整個互聯網行業,從剛起步的創業公司,到上市公司乃至巨頭,這個問題都存在着。沒錯,優秀的前端工程師簡直比大熊貓還稀少。
 
但每每都把咱們帶向了誤區:
 

緣由一:前端相對來講是一個新領域,當今的web需求要求更多的工程師供應

可能不少人認爲前端開發和 web 開發相似,而 web 開發已經有20多年的歷史,因此前端並非一個新領域。然而,前端工程師的概念中的「接口技術實現和用戶體驗做爲一個專業的工做領域」,卻無疑是很新的。前端

一位合格的前端工程師,必須對視覺設計有興趣:web

很顯然,要處理大量的 Web 應用程序需求,技術任務就要進行分類,以便於多人同時處理網站請求。事實上如今已經不可能一我的快速地解決全部的技術細節了。算法

 

如今還有一類人是獨自處理一個 Web 應用程序的全部問題,即「全棧工程師」,可是優秀的全棧工程師一樣如大熊貓通常數量稀少。編程

如今,一個創業公司想要成功,幾乎要覆蓋一個 Web 應用程序的諸多技術方面:前端、後臺、DBA、運營等。雖然已經有一些服務可讓企業購買登錄頁面的前端模塊和組件;可是若是你想要創造一些真正的 Web 應用程序,除了求助前端工程師,別無他法,就像你要創立一個品牌你也繞不開請一位設計師同樣。後端

 

緣由二:對前端,廣泛存在巨大的誤解,其實前端一點也不簡單

大多人都認爲前端開發是一個「相對於其餘技術來講更簡單的技術」,在他們心中的前端工程師是這樣工做的:設計模式

  1. 把 Photoshop 文件、圖片或者線框放進一個網頁;
  2. 偶爾設計 Photoshop 文件、圖片或者線框;
  3. 用 JS 編程,爲網頁製做動畫、過渡效果;
  4. 用 HTML 和 CSS 編程,肯定網頁的內容和形式。

事實上,前端工程師在作的是:瀏覽器

  1. 在設計師和工程師之間建立可視化的語言;
  2. 用可視化的設計,定義一組表明內容、品牌和功能的組件;
  3. 爲 Web 應用程序的公約、框架、需求、可視化的語言和規格設定底線;
  4. 定義 Web 應用程序的設備、瀏覽器、屏幕、動畫的範圍;
  5. 開發一個質量保證指南來確保品牌忠誠度、代碼質量、產品標準;
  6. 爲 Web 應用程序設定適當的行距、字體、標題、圖標、邊距、填充等等;
  7. 爲 Web 應用程序設定多種分辨率的圖像,設備爲主的實體模型,同時維護設計指南;
  8. 用 account semantics, accessibility, SEO, schemas ,microformats 標記 Web 應用程序;
  9. 用一種友好的,消耗小的,設備和客戶端感知的方式鏈接 API,獲取內容;
  10. 開發客戶端代碼來顯示流暢的動畫、過渡、延遲加載、交互、應用工做流程,大多數時間用來考慮漸進加強和向後兼容的標準;
  11. 保證後臺鏈接安全,採起跨地資源共享(CORS)的程序考慮,防止跨站點腳本(XSS)和跨站點請求僞造(CSRF) ;
  12. 最重要的是,儘管有嚴格的期限、利益相關者的要求,以及設備的限制,不管如今仍是未來永遠是「客戶第一」。

爲了實現上述目標,前端工程師採用了從可視化到編程的多種工具 ,甚至有時要照顧市場、 UX 到內容等等。緩存

緣由三:大量糟糕前端工程師的存在,擾亂了市場

這或許是難以招到優秀前端工程師最明顯的緣由。因爲前端工程師的入門門檻很是低,JS、CSS、HTML並非很難入門掌握的語言,彷佛只要花一點時間,不管是誰,均可以經過網上教程或者書本入門。對的,前端工程師市場就是被這些淺嘗輒止的傢伙搞壞的。安全

糟糕的前端工程師:前端工程師

  1. JavaScript 類庫亂用,對 JavaScript 自己並不瞭解,什麼地方都用 jQuery;
  2. 濫用 JavaScript 插件,看都不看看就把別人的代碼拿過來用,好比說;
  3. 不看需求,不作任何的比較和測試,就把CSS 框架加到項目中,但只用了其中 5% 的功能;
  4. 認爲添加個 CSS Framework,網站就能夠變成「響應式的」,或者響應式就像是一些小做料,隨便就能夠加入到一個網頁應用中;
  5. 嘴上喊着「響應式的 Web 設計」,但服務端技術一點都不懂;
  6. 編寫的 CSS 沒有任何規範標準,不使用任何預處理器,也沒有最佳實踐。CSS 代碼中充滿了過分使用的選擇器、ID、神奇的數字以及 !important;
  7. 不關心代碼的性能和內存泄露(什麼是真正的內存泄露也不清楚),不會對代碼進行性能測試;
  8. 對產品沒有任何的衡量指標,或者把「在個人電腦/瀏覽器/移動設備上能夠工做」爲指標;
  9. 忽視30年的軟件工程實踐,毫無章法的開發軟件。

要知道,入門容易精通難,計算機和軟件的基礎對你用 JS 或瀏覽器編程都很是重要。web 多是最有影響力的平臺和環境之一,在那裏執行的程序必須被當心對待。一位優秀的前端工程師不只要考慮 web 技術和語言,而且還要了解全部不一樣的組件、系統和概念

頂級前端工程師須要具有的經驗和最佳實踐(這纔是市場急需的前端):

  1. 瞭解 DNS 解析,充分利用 CDN,使用多個域名來完成資源的請求以縮短加載時間;
  2. 設置 HTTP Headers(Expires, Cache-Control, If-Modified-Since);
  3. 遵循 Steve Souders 給出的所有規則(High Performance Websites)
  4. 知道如何解決 PageSpeed、YSlow、Chrome Dev Tools Audit、Chrome Dev Tools Timeline 顯示的全部問題;
  5. 知道什麼任務該放在服務端,什麼任務該放在客戶端;
  6. 知道使用緩存,DNS 預取和資源預加載技巧;
  7. 精通 JavaScript,知道什麼時候本身寫什麼時候借組別人的框架或代碼,優劣明辨;
  8. 熟練使用現代 MVC JavaScript 框架(例如 AngularJS EmberJS React 等),圖形庫(D三、SnapSVG 等),DOM 操做類庫(jQuery、Zepto 等),惰性加載或者模塊管理類庫(例如 RequireJS、CommonJS 等),任務調用工具(例如 Grunt Gulp 等),包管理工具(Bower Componentjs)以及測試工具(Protractor、Selenium 等);
  9. 掌握圖片的格式,每種格式的優勢,適用的場景;知道圖片優化技巧以及加載策略(雪碧圖、懶加載、緩存刷新以及 PNG 交錯);
  10. 熟悉 CSS 標準、最新的轉換工具積極策略規範(好比 BEM、SMACSS、OOCSS 等);
  11. JavaScript 的計算機科學(內存管理、單進程特性、垃圾回收算法、定時器、做用域、提高以及設計模式)。

換句話說,若是說精通 HTML+CSS+JS,瞭解後端知識,只是60分的合格前端;那麼要想成爲受追捧、拿高薪的80分優秀前端,要對業務需求和、架構設計有真正的運用;而100分的頂級前端,則必需要可以兼顧技術和設計,更接近「之前端開發爲主的全棧工程師」了


市場不是缺乏前端,而是缺乏優秀的前端工程師

如今,前端工程師終於在 web 中佔有了一席之地。隨着多設備、瀏覽器和Web標準的演變革命,前端正在成爲兼顧邏輯、性能、交互、體驗的綜合性崗位

雖然如今互聯網行業廣泛缺乏前端工程師,可是咱們相信愈來愈多的人將會加入前端的大軍。不只是由於大多數前端工做提供的優渥薪水和辦公環境,也是由於web中的前端編程變得愈來愈有挑戰和意義。

 

本文轉載於:http://zhuanlan.zhihu.com/FrontendMagazine/20598089

相關文章
相關標籤/搜索