前端工程化的個人思考
(題圖:from unsplash)
17年寫過一篇文章《 ofollow,noindex">野蠻生長的前端,從雜牌軍到正規軍 》,當時是為了解決前端程式碼快取問題延伸出來的,寫那篇文章時,前端我是個門外漢。近一個月又讀了兩本關於前端架構、實踐指導的書,有必要再來總結一下,當然,我還是個門外漢,之於前端似乎沒什麼長勁,前端專業人士可略過。
在我的印象中,一提到軟體工程,首先不會想到的是前端這一塊,大概是因為以往工作偏向的緣故。這兩年最大的感觸就是前端發展的很快,時下的前端開發也遠非從網路中摳一段jQuery程式碼就能搞定功能這麼簡單。
AJAX的出現第一次將前端的請求非同步化,區域性重新整理使使用者體驗提升了一大截。NodeJS的出現則將前端的發展推向了高潮,一大批基於V8引擎、基於NodeJS之上的開發工具脫穎而出,極速的提升前端開發的效率、效果。
下面從幾個方面,來梳理下近階段關於前端的一些思考,僅供參考,歡迎在留言區討論。
前端工程師崗位
但凡有點規模的團隊,前後端分離開發是必然的。前端開發崗們之前多是由後端開發人兼職,由網頁製作人員將靜態效果製作完後,交由後端開發人員將動態功嵌入進去。現在這麼做的團隊也有,當然這樣效率不是最高的。前端工程師獨立崗位的出現,將前端工程化帶近了一步。這一部分專職從事前端開發,而無須再關心後端資料如何組裝、如何處理、如何儲存,將更大的精力投入到終端展現上面。
面向瀏覽器程式設計
(之前一直準備寫篇文章叫“面向工資程式設計”)這個詞確實是最近一個月才接觸到新名詞,被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的一種實現方式)。
姑且先寫到這裡,續下一篇再繼續展開。
粗淺的瞭解下來,前端的發展無容小覷,前端工程師獨立崗位早已出現,特別是在目前大前端、大中後臺的思潮下,前端架構師的崗位也相繼出現,分工細化、研發工程化必然帶來效率的提升,作為系統設計人員,瞭解前端實踐並應用在實際研發中勢在必行。
擴充套件閱讀:
-
360e81ba16e49fabc8c3185d8b65e6e465fa15317ab12f727f29&scene=21#wechat_redirect" target="_blank" rel="nofollow,noindex">怎麼定位自己在團隊裡的角色
長按2秒,識別二維碼,關注我。