前端:水很淺,但水很渾。。。

 

      本週最熱門的帖子莫過於這篇《前端,我爲何不要你》了。做者針對前端的一次次面試吐槽,引起了極大的討論熱潮。匆匆瀏覽了300條之多的各類評論以後,發現不少人對該博主的吐槽和招聘要求都極度不滿,仔細梳理一下,其中主要觀點無外乎這麼幾種:html

一、博主的小公司沒有資格也沒有底蘊更沒有財力要求招聘到技術全面一些的高級人才,有來應聘的就燒高香了,得趕忙收着纔是,不能挑三檢四;前端

二、博主靠秀優越來貶低應聘者,不能由於本身會的多一些就要求求職者也要啥都會;web

三、關於前端技術的掌握,不少人觀點驚人的一致,那就是寫代碼懂編程彷佛是對前端要求太不公平,反正懂得再多也用不着,不必學那麼多;面試

四、認爲項目分工細化,要抓住一點往深裏研究纔是正道,跟前端不要緊的根本連理都不用理,好像多知道一點對前端是種侮辱同樣。編程


 

      不過看了這位博主的文章以及各位的評論,結合本人的一點認知,我獲得了一個結論:前端的水很淺,但水很渾後端

      首先說你們對前端的認識和定位,好久以來,就各有各的見解,不像對後端那樣明確。好比有人認爲前端就是切圖轉化HTML,頂多JS作個特效,加個FLASH動畫,沒什麼大不了,誰都能作;也有人認爲前端是整個項目直接面對甲方的最終成果,後端能夠有點瑕疵,但前端必需要甲方滿意才行,位置很重要。但認爲重要的也分兩種狀況,一是認爲界面UI的設計重要,必須作好美工,作漂亮一些才行;另外一種則認爲,不但要有好UI還要注重性能,還要注重用戶體驗方便操做,還要注重易於維護,代碼要規範,不亞於一個小全棧,典型表明就是上面提到的這位飽受爭議的博主了。瀏覽器


     

      以上,你們對前端的認知和定位,雖然有輕有重,可是至少有一點能夠基本肯定:那就是前端的水不深,技術要求不算很高,只要會HTML+CSS+JS+多媒體就基本是一個合格的前端了,到哪裏都是幹這些活。何況這些技術都有標準能夠遵循,可以創新的餘地也基本沒有,會用就足夠了,也就是說技術方面「水很淺」這是你們基本的共同觀點。框架

      做爲我我的來講,本職工做並不是是全職寫代碼,但也斷斷續續維護了一個本部門內部辦公項目長達7,8年之久了。提及來前端是一塌糊塗,但由於日積月累擴展,系統已經臃腫到沒法改善的地步了,只能將就着繼續維護。咱們人手有限又不是主業崗位,因此也不分什麼先後端,整個項目採用的webform框架。通過多年的維護升級經驗,我我的以爲,做爲前端,特別是這種asp.net的webform前端,要作好維護或開發,並非表面上看起來那麼容易。對技術的要求看起來也好像是「水很淺」,一腳能踩到底,可是你每每看不清你應該如何使用這些淺顯的技術來知足功能需求。因此我說「前端的水很渾」asp.net

 


      我說了半天,可能很抽象,那就舉個例子,既然分開先後端,天然是後端以數據處理爲主,而前端以數據展現爲主了。咱們假定後端是0響應的,就是說後端兄弟的數據處理很快瞬間就返回,那麼如今問題就只能出在前端了。如今有個頁面是一個常規通常的前端完成的,設計界面,切圖,而後用可視化工具自動轉成一樣佈局的HTML頁面,爲了酷炫加入了FLAH特效,老總看了效果很好,拿去給客戶演示。但在客戶的電腦上,頁面等了一兩分鐘才刷出來,並且尚未最得意的flash酷炫特效。模塊化

      問題的症狀有了,並且聰明的同窗必定曉得了,是由於客戶的瀏覽器沒有裝FLASH插件形成的,但爲何刷新卻這麼慢呢?通常沒控件頂多也就看不了特效啊?若是做爲前端你必定也很委屈,老總測試都是好好的,並且本身也是按照標準作的HTML和切圖以及flash,爲何加載就慢了,而另外一個由後端徹底輸出也帶flash的頁面在客戶那裏卻正常速度刷新出來,這是咋回事?人品太差了?其實這裏就用到了一個瀏覽器的渲染順序的知識點。這次前端製做的頁面HTML是由自動化工具生成的,工具爲了方便定位和佈局,自動採用了table標籤來作佈局,雖然效果不錯,可是一旦單元格內的某項元素沒法正常加載,則整個表格的渲染會被掛起,直至等到元素加載完畢或超時不加載以後纔會繼續渲染後續的元素,只有整個表格內的元素所有渲染完畢纔會顯現出來。因此當flash沒法顯示時瀏覽器會嘗試等待,直到一兩分鐘確認超時後才繼續處理表格的其它內容。這就是一個表格標籤渲染阻塞的特性,若是你做爲一個只對本身「負責任」的前端,只管HTML、切圖、CSS+JS等崗位職責內的工做,那麼當你的工做成果出現由於職責外緣由致使的疑難雜症時,你不但要背黑鍋,還要被人質疑你爲了精通前端而不肯學習其餘內容而且老是賴以傲嬌的前端技術的深度。


 

      不少人爲了鑽研得深,每每放棄甚至不肯意多掌握一點其餘相關領域的內容,甚至以爲前端學寫代碼掌握一點HTTP協議知識是種莫大的屈辱同樣。不能否認,前端的工做也是很辛苦的,做圖切圖,配搭CSS,寫特效腳本也都是腦力活,跟後端同樣的重要,但若是隻是保持這個狀態真的不須要多學什麼了。正如我說的「水很淺」,前端的技術都是有標準不可創新的技術,一腳能踩到底;但要想把前端作精作深,真的須要多借鑑一下外圍的力量和技術,當你們的技術同樣時,誰能拉來外援誰天然會技高一籌的。


 

      我我的建議是:能多掌握一些跟前端有關的其它領域知識會對前段工做有很大促進做用,至少會開拓一下你的思路,即便不能直接派用場,也能起到必定的啓發借鑑做用。前端的水很淺,因此你們都擠滿了前端的水窪子,連後端的同窗都能爲所欲爲的客串一下,但前端的水也很渾,僅僅靠空蕩蕩的雙手是很難比別人抓到更多的魚的,若是你能備上一個網兜,你就比別人有優點能夠抓到更多的魚了。

 


 

      補充:不少人疑惑爲何HTTP我也要留意一下呢,明明個人前端在瀏覽器裏展現,跟HTTP不沾邊呀?這裏我重申一下本身的項目總體觀供你們參考,不管項目分工怎麼細化,不管項目設計怎麼模塊化,有一點不會變的就是,全部的分工全部模塊都是圍繞把項目作好來分工來設計的,因此不要把本身的職責當作是孤立的,不要不考慮團隊不考慮項目總體的來任性發揮,不然你會脫節的。回到一個B/S項目,雖然你的前端是在瀏覽器範圍內,可是在瀏覽器展示你的前端以前,你的前端實際上也是在「後端」的,它須要經過HTTP協議的傳送才能來到瀏覽器端,因此你完整的前端生命週期中必然包括HTTP協議。並且你的前端和後端交互的時候也是用到HTTP協議的,無論從哪個方面考慮,HTTP協議都是你職責範圍內的一部分,你瞭解一下也是算得上必然吧?

 

      以上觀點,僅供參考。

相關文章
相關標籤/搜索