(題圖:from unsplash)前端
17年寫過一篇文章《野蠻生長的前端,從雜牌軍到正規軍》,當時是爲了解決前端代碼緩存問題延伸出來的,寫那篇文章時,前端我是個門外漢。近一個月又讀了兩本關於前端架構、實踐指導的書,有必要再來總結一下,固然,我仍是個門外漢,之於前端彷佛沒什麼長勁,前端專業人士可略過。webpack
在個人印象中,一提到軟件工程,首先不會想到的是前端這一塊,大概是由於以往工做偏向的緣故。這兩年最大的感觸就是前端發展的很快,時下的前端開發也遠非從網絡中摳一段jQuery代碼就能搞定功能這麼簡單。web
AJAX的出現第一次將前端的請求異步化,局部刷新使用戶體驗提高了一大截。NodeJS的出現則將前端的發展推向了高潮,一大批基於V8引擎、基於NodeJS之上的開發工具脫穎而出,極速的提高前端開發的效率、效果。編程
下面從幾個方面,來梳理下近階段關於前端的一些思考,僅供參考,歡迎在留言區討論。gulp
但凡是有點規模的團隊,先後端分離開發是必然的。前端開發崗們以前可能是由後端開發人兼職,由網頁製做人員將靜態效果製做完後,交由後端開發人員將動態功嵌入進去。如今這麼作的團隊也有,固然這樣效率不是最高的。前端工程師獨立崗位的出現,將前端工程化帶近了一步。這一部分專職從事前端開發,而無須再關心後端數據如何組裝、如何處理、如何存儲,將更大的精力投入到終端展示上面。後端
(以前一直準備寫篇文章叫「面向工資編程」)這個詞確實是最近一個月才接觸到新名詞,被ie6折磨過的朋友相信很能體會背後的意味。各類瀏覽器終端的出現,且很多以未遵照JS/CSS規範的形式出現,致使開發終端展示時不得不考慮各類瀏覽器、瀏覽器的不一樣版本的兼容性。時至今日,前端技術的發展亦足以解決這個問題。Babel的產生,編程時只關注語言便可,在構建時,由其產生低版本JS以知足低版本的兼容性。PostCSS的面世,也使CSS開發時無須擔憂多版本、多種類瀏覽器的兼容性,好消息時,各家瀏覽器也在積極的向規範、向標準靠攏,以使終端展示可以更加一致。前端工程化
一大批時下優秀的JS開發框架、腳手架,將JS開發提升到了史無前例的高度,用純jQuery的朋友都少了吧,開始轉向Vue、React、ng2的懷抱了吧。Yoeman、Vue-cli等腳手架工具,可讓你輕鬆搭建一個前端項目。CSS預處理、預編譯框架更是將這個弱編程的語言中加入了編程能力,less、sass已經在不少項目中採用。任務處理器更是極大的解放了人力,gulp、webpack幾乎成了現代化前端開發的必備。本地化開發時,經過事件監聽,直接熱部署將結果呈現到終端,而無須在反覆刷新頁面、清緩存刷新頁面。Mock的出現更是將前端開發與後端開發隔離,再也不相互掣肘。瀏覽器
提到工程化總離不開模塊化,提到了模塊化,彷佛組件化也頗有必要,這是個一環套一環的依賴。但實施起來亦是至關不易,特別是有期限項目性工程,交付第一,交付結束如無後續升級,基本不會進行模塊化組件化優化。產品化項目比較適用,隨着功能迭代推動,模塊化更有利於開發解耦,提升複用性,對後期維護也很友好。緩存
Node的出現,使模塊化更加簡便,你會發現模塊化項目中,require、import、export應用的如此頻繁,CommonJS,AMD/CMD在ES6以前在模塊化研發起着比較重要的做用。ES6中更是原生就支持模塊化,(ECMAScript簡稱ES,JavaScript只是ES的一種實現方式)。sass
姑且先寫到這裏,續下一篇再繼續展開。
粗淺的瞭解下來,前端的發展無容小覷,前端工程師獨立崗位早已出現,特別是在目前大前端、大中後臺的思潮下,前端架構師的崗位也相繼出現,分工細化、研發工程化必然帶來效率的提高,做爲系統設計人員,瞭解前端實踐並應用在實際研發中勢在必行。