天天看點

我的十年前端生涯

我的前端十年生涯,以我的職業路線,講述前端的發展曆程。

工作了十多年,也做了十來年的前端,從一個碼農的視角,來看待整個前端發展史,希望能有所收獲吧。我會從我的工作曆程來看中國(或者說是杭州)的前端發展史。

我大概是從2010年開始從事前端工作的,我記得上一份工作還是從事的asp.net開發,算是一個寫簡單業務的程式員吧,當時我在一家做遊戲的公司開發網頁政策遊戲,可能大家不太清楚是幹什麼,但網頁遊戲在那兩年确實很火也很賺錢。就是造房子出兵占地之類的,有公司月入幾百萬。當時我還不算前端,公司也沒有所謂的前端一崗,即使是需要寫大量js的遊戲,也是前後端一把棱。當然,因為做這些東西,也讓我對界面調試有了一點點了解,并産生了一點點興趣。然後我離職了,去投履歷,我當時工資好像是3k吧,然後想找個3.5k的程式工作,找了一圈,發現都不适合,然後偶然間看見一家創業公司竟然在招會js的前端開發,然後我就去了,然後我就開始從事前端的工作了,當時前後端還沒有分離,使用的方式仍然是前端的代碼寫在後端的服務上,也沒有子產品化的概念,主要就是做切圖布局和js互動還有ajax,當時剛開始确實有點痛苦的,因為之前我隻是會調試一些簡單的樣式和ajax,并不會切圖和寫布局,于是我就每天中午休息時間拼命的學習網頁三劍客的使用,還好,一兩個星期後,基本上就沒遇到很卡住的問題了。

是以我認為前端的第一個階段是切圖+html+css+jquery,這裡面占比我覺得比較重的還是布局和jquery吧,因為要相容ie678這種浏覽器,是以調試相容也很耗時,不過還好jquery的使用沒有相容問題。

幹了沒多久,我又換了一份工作,是做行業管理這種,當時我是以開發入職的,但面試官又覺得我應該做前端,這個時候在招聘網上也很少出現前端這個崗位的,應該杭州是不超過10家吧。這時我的工資好像漲到了3.8k,一個平穩的漲幅,在這裡我需要做的又與上一家不同,不再去做切圖布局的活了,因為有美工去做,當時美工也不是前端,前端也不叫美工,有人說早期的前端是美工,其實是錯誤的,從來就沒有出現過美工和前端混為一團的情況,至少我沒遇到和見到過。美工把設計好的圖切成html,然後我們再拿這個html拿上代碼邏輯和業務邏輯,我們做mvc中的view層開發,做到bll層結束,另有人專門做接口層。這裡前後端也沒有分離之說,因為view層本身就是包括前端和後端業務開發的。

第二階段的前端開發應該是 jquery + 業務邏輯層編寫。工作量占比的話,可能差不多是4成寫jquery,6成寫後端業務代碼。這一種形式持續的時間應該比較長。

又是一年,來到了2011年,我換到了一家做社交的公司,這裡的後端是php,于是前端做的頁面需要用apache來運作,後端提供接口即可,基本上算是前後端分離了,算是杭州比較早做到前後端代碼分離的公司了。由于是社交這種toB的産品,互動會更複雜一點,是以前端的主要工作就是排版和寫js互動。當時我的工資好像是6k,到我離開的時候是8k左右。這在當時我覺得算有點點小高了。

第三階段的前端開發主要是以js互動+界面排版為主,工作量占比為js6成,排版4成,仍然需要相容ie678。前端子產品化已初步呈現。

再後來2013年,開始接觸seajs和requirejs,這時的前後端已基本完全有了子產品化的概念,你可以使用子產品化完成公用子產品抽離,然後各種複用組裝,說到seajs,可能就不得不提下阿裡了,阿裡确實推動了整個前端界的發展,并不是說seajs多好,而是他帶動了一股風氣,當玉伯名聲大躁的時候,前後端分離也越來越普及,這就是名人效應了吧,雖然require更好用也更早出來,但前後端分離的普及,确實更多的要歸功于seajs,這時我的工資也達到14k,當時比較流行的架構和庫是extjs、dojo、easyui,還有一些其他的mvc型的前端架構,我沒用過就不提了,我還是堅守在jquery陣營。這裡不得不提下前端建構工具,grunt一下子就火了,這種配置化的打包工具很好用,前端仿佛進入了一種大躍進的時代,grunt出來後,立馬就被gulp秒殺,由于grunt檔案操作的成本過大,gulp的高效就優勢明顯了,然後webpack也橫空出世,好像要為配置化的grunt打抱不平。當然node.js在其中最是耀眼。

第四階段的前端主要是以grunt.js打包在子產品化的js程式設計為主,這裡js代碼的工作量接近8層,排版樣式被弱化,浏覽器多以ie8+為主

來到2015年,移動端的火爆,同時也引領了程式員的進化,大量的app湧入市場,再加上guo家對網際網路的支援,p2p、o2o如雨後春筍般出現,我也不例外的換了一份跟移動端有關的工作,做微信商城,這個時候,前端最火的技術是全棧,就是号稱前後端用戶端一把梭。當然jquery系還有一個zepto在支撐,于是,我幾乎每周寫一個插件,一年下來也算累積了幾十個jq系列的ui插件了,可惜時代已經抛棄了jquery。然後由于大量這種p2p、o2o公司的創立,導緻供不應求,前端的工資也水漲船高,特别是g20又吸引來了一大批的高材生,房價也應聲上漲,我好像正拿着16k沾沾自喜的時候,突然一大票20k+的人(或者說是招這種人的公司)出現了,這些人有一個共同點,就是浮躁,能力不見出衆,但有人願出高價,于是乎,我也立馬投身進入了,找了家22k的公司,看着好像要趕上城西的老破小的房價了,可是轉眼房價就翻了一番,而你卻無力追趕,這時候最流行的三大架構是angular、react、ember,在國内應該是angular和react二分天下,還有一些backbone的流民,當時vue好像還沒出來吧,我經過仔細的分析學習後,發現他們的學習難度是ember>ng>react,然而ng的編寫方式完全是偏後端的寫法,我覺得ng能火真的是被吹起來的成份居大,什麼mvvm完全是炒概念,當然這個機率後來也被vue炒了一遍。當時react火的很大一部分可能是因為reactNative,因為react雖然簡潔明了,但入門的門檻确實有點高,就說那個環境,在沒有react-create-app-cli的時候,我也是搭了幾天,不過我還是投身到了react的懷抱。

第五階段的前端主要是在架構的選擇中,比較流行的架構有react、angular、backbone、reactNative,這一階段就是華山論劍了,各種架構技術層出不窮,當然很大一部分還是因為移動端的發展導緻的,因為移動端的興起,原來前端最頭疼的相容性問題一下子好像消失了,變成了手機适配和jsbrige,當然nodejs的火爆也降溫了,全棧的說法好像也已達到頂峰。

任何事物都是如此,物極必反,移動端火得快,涼得也快,企業家們好像突然就意識到了,還是toB賺錢,toC太燒錢了,燒不到上市你就倒了,最後小程式戰勝了用戶端,pc和移動h5又回到了父子陣營,這個時候就有人吹玉伯,大家都去搞移動端的時候,隻有他駐守在pc端,我不知道具體情況如何,但事實是,移動端的發展确實如流星一般劃過,耀眼但不持久,但如果你把移動h5看成原來的ie的一個版本的話,其實也就那樣了。說到這裡,我又換工作了,來到了一家做銀行金融的公司,主要就是toB的業務,新的技術好像也就electron吧,不值一提,然後轉眼之間,一呆就呆了五年,這五年裡,整個前端行業的發展好像也一直停留在g20後的那段高光時段,似乎懂一點理論+基礎就可以輕易找到20K左右的工作了,然而供需關系正在發生改變,越來越多的人轉向了前端,有教育訓練的,有從後端轉職的,有學校裡就學前端的,反正人是多了,公司也多了,有人的地方就有江湖,前端開始想辦法争話語權,開始做一些業務層的開發工作,好像又回到了我的2010年,新的技術也大多是圍繞着自動化、工程化這些名詞來的,果不出意料,angular基本消失在前端圈裡,由vue來頂替它與react一争高下,當然,我一直是站在react這一陣營的,vue不出意外的話,會逐漸變成當初的backbone。

第六階段的前端我認為是百花齊放的,基本上react、vue都占有一席之地,然後還有一些做node.js做ssr的,我是認為使用node.js做ssr與我當初把頁面放在jsp、asp、php似乎也沒有什麼太大的進步,我盡量去避免走回原點。

縱觀我的前端工作生涯10年裡,其實前端的技術革命還是有迹可循的,天下大勢,合久必分,分久必合,也沒有别人說的那麼大的變化,react從六七年前就開始流行了,現在也變化不大,vue基本也算是ng的一個子集,nodejs更是早在十年前就大火過一把,直至現在,也隻是淪為一個打雜工。每一個階段,似乎冒出了一些新的舊東西,但我們隻要不懷疑,堅定往前走就行了。何以為專家,某一領域的專長得到大家的認可即可。如何做到這一領域的專長精通,隻有在這一領域不斷的深挖才行。