當前位置:首頁 » 網頁前端 » 前端工程化理解
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端工程化理解

發布時間: 2022-04-17 19:38:59

⑴ 如何理解前端模塊化

前端模塊化
在JavaScript發展初期就是為了實現簡單的頁面交互邏輯,寥寥數語即可;如今CPU、瀏覽器性能得到了極大的提升,很多頁面邏輯遷移到了客戶端(表單驗證等),隨著web2.0時代的到來,Ajax技術得到廣泛應用,jQuery等前端庫層出不窮,前端代碼日益膨脹

這時候JavaScript作為嵌入式的腳本語言的定位動搖了,JavaScript卻沒有為組織代碼提供任何明顯幫助,甚至沒有類的概念,更不用說模塊(mole)了,JavaScript極其簡單的代碼組織規范不足以駕馭如此龐大規模的代碼

模塊
既然JavaScript不能handle如此大規模的代碼,我們可以借鑒一下其它語言是怎麼處理大規模程序設計的,在Java中有一個重要帶概念——package,邏輯上相關的代碼組織到同一個包內,包內是一個相對獨立的王國,不用擔心命名沖突什麼的,那麼外部如果使用呢?直接import對應的package即可

import java.util.ArrayList;
遺憾的是JavaScript在設計時定位原因,沒有提供類似的功能,開發者需要模擬出類似的功能,來隔離、組織復雜的JavaScript代碼,我們稱為模塊化。

一個模塊就是實現特定功能的文件,有了模塊,我們就可以更方便地使用別人的代碼,想要什麼功能,就載入什麼模塊。模塊開發需要遵循一定的規范,各行其是就都亂套了

規范形成的過程是痛苦的,前端的先驅在刀耕火種、茹毛飲血的階段開始,發展到現在初具規模,簡單了解一下這段不凡的歷程

函數封裝
我們在講函數的時候提到,函數一個功能就是實現特定邏輯的一組語句打包,而且JavaScript的作用域就是基於函數的,所以把函數作為模塊化的第一步是很自然的事情,在一個文件裡面編寫幾個相關函數就是最開始的模塊了

function fn1(){
statement
}

function fn2(){
statement
}
這樣在需要的以後夾在函數所在文件,調用函數就可以了

這種做法的缺點很明顯:污染了全局變數,無法保證不與其他模塊發生變數名沖突,而且模塊成員之間沒什麼關系。

對象
為了解決上面問題,對象的寫法應運而生,可以把所有的模塊成員封裝在一個對象中

var myMole = {
var1: 1,

var2: 2,

fn1: function(){

},

fn2: function(){

}
}
這樣我們在希望調用模塊的時候引用對應文件,然後

myMole.fn2();
這樣避免了變數污染,只要保證模塊名唯一即可,同時同一模塊內的成員也有了關系

看似不錯的解決方案,但是也有缺陷,外部可以隨意修改內部成員

myModel.var1 = 100;
這樣就會產生意外的安全問題

立即執行函數
可以通過立即執行函數,來達到隱藏細節的目的

var myMole = (function(){
var var1 = 1;
var var2 = 2;

function fn1(){

}

function fn2(){

}

return {
fn1: fn1,
fn2: fn2
};
})();
這樣在模塊外部無法修改我們沒有暴露出來的變數、函數

上述做法就是我們模塊化的基礎,目前,通行的JavaScript模塊規范主要有兩種:CommonJS和AMD

CommonJS
我們先從CommonJS談起,因為在網頁端沒有模塊化編程只是頁面JavaScript邏輯復雜,但也可以工作下去,在伺服器端卻一定要有模塊,所以雖然JavaScript在web端發展這么多年,第一個流行的模塊化規范卻由伺服器端的JavaScript應用帶來,CommonJS規范是由NodeJS發揚光大,這標志著JavaScript模塊化編程正式登上舞台。

定義模塊
根據CommonJS規范,一個單獨的文件就是一個模塊。每一個模塊都是一個單獨的作用域,也就是說,在該模塊內部定義的變數,無法被其他模塊讀取,除非定義為global對象的屬性

模塊輸出:
模塊只有一個出口,mole.exports對象,我們需要把模塊希望輸出的內容放入該對象

載入模塊:
載入模塊使用require方法,該方法讀取一個文件並執行,返迴文件內部的mole.exports對象

⑵ web前端學會什麼內容可以找到工作

對於一些初出校門或者是零基礎轉行人員來說,Web開發崗位在未來職位晉升、薪資待遇上都是前景可觀的,想要成為一名合格的Web開發工程師就需要掌握崗位所需要的開發技能,下面和小編一起看一下都有哪些內容吧。

一、HTML5+CSS3

HTML5和CSS3是通往Web工程師路上必須學會的基本內容,主要包括了解常用瀏覽器和瀏覽器內核;了解語義化的概念;掌握HTML5語法及使用技巧;掌握HTML5常用標簽。掌握CSS語法及使用技巧;掌握DIV+CSS布局方式;掌握常見網頁布局模式。掌握HTML5新布局標簽、多媒體標簽;掌握CSS32D、3D變換、動畫效果;能夠使用CSS3新屬性美化修飾網頁;了解移動端屏幕、移動端瀏覽器、操作系統的不同等內容。

二、JS交互設計

JS交互技術可以賦予頁面一個動態的效果展示,提升用戶的瀏覽體驗,這部分主要是通過JS的學習掌握JavaScript基本語法;掌握常見JavaScript演算法;掌握DOM的各種操作;熟練使用面向對象思想進行DOM編程;掌握JavaScript的高級語法;掌握JavaScript常見兼容性方案。熟練使用jQuery操作DOM;熟練使用和編寫jQuery案例。

三、Node開發

Node.js不僅僅是一個框架,它是一個完整的JavaScript環境,配備了開發人員可能需要的開發工具。所以學好Node是在打通前後端開發中需要掌握的技術。這部分需要掌握ES6的基礎用法和兼容性;掌握ES6的核心語法;使用ES6實現前端模塊化開發。使用Webpack模塊打包器;使用Node.js進行Web服務端開發;掌握JavaScript非同步編程模型;掌握JavaScript模塊化編程方式;使用Node.js操作MongoDB資料庫;獨立開發基於後台介面的動態網站、Ajax數據交互的項目;獨立完成企業網站從前台到後台的基本開發工作。

四、前端框架

前端框架是Web開發人員需要熟練掌握的技能,並且在實際開發中是會被廣泛應用的,那麼對於前端框架方面需要掌握現在主流的Vue、React、Angular等,掌握D3.js進行大數據可視化交互開發;掌握Vue技術棧進行項目開發;掌握React技術棧進行項目開發;掌握使用主流框架開發門戶網站、管理系統、移動Web等客戶端;掌握Webpack項目構建配置流程;掌握Web項目的部署與發布模式;掌握常見網站業務模塊開發等。

五、小程序與APP開發

現在移動應用越來越受歡迎,掌握了小程序和APP開發技術可以增強自身競爭力,這就需要掌握小程序的開發基礎;能夠獨立開發小程序項目;能夠掌握Canvas的使用;能夠掌握小程序的部署與發布;能夠掌握小程序開發框架mpvue的使用;掌握第三方AI平台的使用。能夠掌握小游戲開發基礎;能夠獨立開發小游戲項目;能夠掌握小游戲的部署與發布;能夠獨立使用ReactNative開發原生App。

⑶ 一名合格的前端工程師的知識結構是怎樣的

第一,必須掌握基本的Web前端開發技術,其中包括:CSS、HTML、DOM、BOM、Ajax、Java等,在掌握這些技術的同時,還要清楚地了解它們在不同瀏覽器上的兼容情況、渲染原理和存在的Bug。
第二,在一名合格的前端工程師的知識結構中,網站性能優化、SEO和伺服器端的基礎知識也是必須掌握的。
第三,必須學會運用各種工具進行輔助開發。
第四,除了要掌握技術層面的知識,還要掌握理論層面的知識,包括代碼的可維護性、組件的易用性、分層語義模板和瀏覽器分級支持等等。
可見,看似簡單的網頁製作,如果要做得更好、更專業,真的是不簡單。這就是前端開發的特點,也是讓很多人困惑的原因。如此繁雜的知識體系讓新手學習起來無從下手,對於老手來說,也時常不知道下一步該學什麼,這里的關鍵影響因素就是代碼質量。CSS、HTML、Java這三種前端開發語言的特點是不同的,對代碼質量的要求也不同,但它們之間又有著千絲萬縷的聯系。
對於新手,在Web前端開發培訓班學習一定要給自己制定一系列的學習和成長計劃,制定的方法如下:
第一、梳理知識架構
梳理知識架構的目的在於,要了解清楚,哪些技術是前置、哪些技術是後繼,哪些技術是深度、哪些技術是廣度,按照這兩個維度梳理好知識架構之後,才能准確地制定清晰的成長目標、高效的成長計劃。
第二、分解目標
大抵可分解為三個階段,包括:起步階段、提升階段、成型階段。這三個階段分別對應著不同的目標:起步、提升、成型階段。
成為一名合格的前端開發工程師,學習是必不可少的。

⑷ 如何成為一個前端工程師

作為一名前端工程師,必須要掌握的三樣東西HTML,CSS,Javascript。這里掌握的意思是,你不需要去藉助搜索引擎去完成你的主要任務,當然我沒有涵蓋到書本,因為在JS發展到現在的,我們已經在裡面添加里數不清的介面,你也不可能全部都瞭然於心。
三者當中你還要比較深刻了解JS中的兩大部分,COREscript 和DOM,前者也就是我們經常提到的ECMAscript。你需要知道JS中最不同於其他語言的一些基本概念,諸如原型鏈,事件冒泡,字面量等,這對於你去了解一些框架有很大的幫助。當然你是不能不懂得AJAX,幾乎我沒有見過有哪個新型web站是不用這些技術的。另外你還懂得如何去操縱DOM,這個很關鍵。也是最繁瑣的一個地方(繁瑣的地方是,當你深入理解到節點類型,map,一堆繁瑣的底層API的時候,你就會想哭的感覺,當然很多時候你都不會用到這些東西),當然一般來說它也不是什麼難題,多加訓練即可。
socket 需要重點理解),只是一些新的擴展性API,在經驗當中可以成長。
當你覺得自己概念知識都能夠基本掌握的時候,那麼請你去實踐。多麼偉大的代碼都要經過實踐出真知,它不僅可以給你帶來驗證,而且它可以讓你深刻去理解。
如果你想繼續提升自己的能力,那麼可以從以下幾個方面去提升:
1.閱讀別人的程序,理解別人的思路。你可以去使用和閱讀框架,當然有人一聽到框架就會嗤之以鼻,特別是性能黨。我想說框架是個好東西,不過前提是你最好理解底層的東西。
2.優化你的程序,把你的程序做精做簡,這是非常考驗一個前端工程師的自我修養能力。
3.構建一個後端程序,或許你可以使用node去構建一個伺服器,網上有教程手把手教你從基本做起,讓你可以很好的貫穿前後端的知識。
4.如果你還有時間,那麼可以學些腳本語言提高下自己的能力。作為一名前端個工程師,我們並不是需要你很全面的掌握一切有關計算機的知識,因為那樣很不實際。你要相信你的記憶力和精力都是有限的,特別是面對費腦子的計算機。

⑸ 一個優秀的前端工程師應具備哪些技能

1、熟練而全面的掌握web前端技術
優秀的web前端開發工程師要在知識體繫上既要有廣度和深度。如果你的html、css(包括現在的HTML5+CSS3)基礎不會,或者不夠扎實,或者JS很好,但布局基礎不行……這些表現不僅和優秀的標准相差深遠,甚至連合格的web前端都談不上。一個優秀的web前端至少能實現視覺和交互功能,以及與後端伺服器通信,完成業務邏輯。我理解的前端工程師的核心價值就是對用戶體驗的極致追求。

2、具備快速學習的悟性及本能
web發展的很快,甚至可以說這些技術幾乎每天都在變化.如果沒有快速學習能力,就跟不上web發展的步伐。優秀的前端工程師必須不斷提升自己,不斷學習新技術、新模式;僅僅依靠今天的知識無法適應未來。web的明天與今天必將有天壤之別,而前端工程師的工作就是要搞清楚如何通過自己的web應用程序來體現這種翻天覆地的變化。

3、培養良好的代碼規范編寫習慣
一名優秀的web前端從程序設計風格,即在編製程序時所表現的特點和思維邏輯就能展現出來。這就要求我們在設計程序中要使用結構合理、清晰,形成良好編程習慣,對程序的要求不僅是可以在機器上執行,也要給出正確的結果,便於程序調試和維護。

⑹ 前端工程師需要掌握哪些技術

首先,要掌握HTML+CSS來實現靜態的網頁;

其次,掌握JavaScript在靜態網頁的基礎上增加網頁交互效果,比如網站中的輪播大圖、返回頂部按鈕等都是網頁交互效果。

最後,前端工程化、後端技術方面、網路技術等相關知識也是需要你去了解一下,在工作中多多少少都會涉及到。

Tips:掌握一門後端語言有利於你能夠更好的寫好WEB前端代碼,因為WEB網頁最終還是要與後端語言進行結合形成一個真正的動態網站。

總結一下,需要掌握HTML+CSS+JavaScript(熟練或者精通)、後端技術語言(掌握一些前後端交互)、前端工程化(懂得應用即可,畢竟那個就是工具)。

最後給你推薦幾個學習資源:

根據自己平常學習HTML5接觸到的學習資源給你推薦一下吧。

HTML+CSS:《HTML5布局之路》《CSS禪意花園》

JavaScript:《JavaScript高級程序設計》《JavaScript權威指南》

HTML5分享平台:HTML5學堂、決勝前端等

⑺ 前端開發工程師需要學習什麼知識

web前端開發工程師一般分為三種級別,一般分為初級工程師、中級工程師、高級工程師。

1.初級前端工程師:能熟練使用html、css、js,主要工作還是搭建靜態頁面。進階知識的話就是響應式這一塊了,一套代碼能適配pc+手機是初級前端工程師的進階。

2.中級前端工程師:作為一名中級前端工程師的話,除了上面的以外,還需要會使用一些框架之類的東西,像bootstrap、jquery之類的。進階的知識應該是ajax這一塊了,當然ajax並不是很難,了解怎麼與後台互動式學習ajax的關鍵點。

3.高級前端工程師:想成為高級前端工程師,首先要學習的就是前端工程化,進階框架angular、vue、react ,和jquery有著很大區別,vue是數據控制頁面渲染及狀態,而jquery是DOM節點控制渲染,vue渲染頁面更容易更優雅。vue能夠把前端項目徹底工程化,有配置文件、可以安裝第三方模塊、配合webpack打包、可以實現模塊化開發等等,當然簡單是它最大的優勢。進階就是要學習es6 7 語法、vuex、Element_ui (開發pc端框架)、vux(開發手機端框架)、Mint UI(開發手機端框架)、Nodejs(後端語言,js語法)。

⑻ web前端未來將會有什麼樣的發展趨勢

趨勢一:更加移動優先
響應式設計顯然是目前Web前端開發領域的主要趨勢之一,並且這一趨勢在未來還將持續一段時間。雖然現在的響應式設計大部分還是以PC版優先,然而如果有一天我們把PC版放到比移動版次要的位置上,也沒有什麼好奇怪的。因為,目前許多Web前端開發者已經開始轉向以移動優先方案來做他們的響應式設計和開發,這就象徵著一個重大轉變,值得我們跟進的。
趨勢二:更多使用快速原型開發工具
眾多Web前端開發者從2016年開始嘗試使用快速原型開發工具,而在2018年將是這種技術真正爆發的一年。「UXpin、Webflow、Invision以及其它許多快速原型開發工具,讓設計師不用寫一行代碼,就能為網站和服務快速創建低保真和高保真原型,便於設計師衡量它們的可用性和美觀性。」 Web設計師Jamie Leeson says如是說,「許多工具也允許你在瀏覽器中設計原型並從工具里真正啟動網站自身。」
不管未來前端發展方向如何,可以肯定的是未來前端人才需求依舊很大。想學前端開發專業的機構也很多,你可以去線下試聽課程了解一下,例如北大青鳥、南京中博軟體學院、南京課工場等等都有試聽課程的!

⑼ 怎樣提高前端工程師開發效率,都在這里

前端工程師其實是一個工作很雜的職位,除了要負責切圖、寫html/css/js外,還要解決一系列的瀏覽器兼容性、網頁性能優化等問題,所以提高前端工程師的開發效率是勢在必行的,也是前端工程化的體現。

對於開發效率,我個人理解是

開發效率 = 新增代碼的效率 + 修改代碼的效率 + 維護代碼的效率

那麼如何提高前端開發效率便可以按照前端工程化的理念來進行劃分。下面我就介紹下7個提高前端開發效率的方法。

1.切圖

切圖是一個前端最基礎的技能,一般我們使用Photoshop或者FireWorks基本都能搞定設計師交付給我們的設計圖,但是要提高切圖效率的話就得使用一些訣竅了,比如利用PS里的動作來實現「一鍵切圖」功能,這里除了切圖外還介紹了其他的實用方法和工具。

2.編碼

對於編寫代碼部分我們首先要找到一款合適自己的IDE工具,建議不要使用Notepad++或者Dreamweaver,這些工具已經不符合前端潮流了,無法讓自己優雅地敲代碼。這里我主要推薦Sublime Text、Atom或者Webstrom,因為它們除了人性化的界面和支持大多數語法的高亮外,還可以安裝各種各樣的插件來拓展你的IDE工具,下面我主要介紹幾款Sublime Text提高開發效率的插件:

其中Element是用於快速編寫html/CSS的,比如輸入 ul>li 後按下tab鍵便可以生成一個ul標簽裡麵包含一個li標簽

JSFormat用於格式化JS;CSScomb用於對樣式屬性進行一鍵排序;HTML-CSS-JS Prettify可以一鍵規范我們的HTML/CSS/JS,甚至JSON格式;SublimeTmpl可以快速新建HTML/CSS/JS文件; ColorPicker用於調用本地調色板功能。這些工具都非常實用,一定程度上可以提高我們的編碼效率。

3.自動化

說到提高開發效率,這里不得不提一些前端的自動化工具,畢竟前端自動化是目前及未來的趨勢,能夠很大程度上縮減前端不必要的工作量,使我們能夠專注前端本身。

這里我們可以使用NPM來管理我們的項目包文件;利用webpack來打包壓縮我們的代碼;利用Node.js來實現構建本地伺服器;利用Karma、Jasmine來測試我們的前端代碼。

用好前端自動化工具可以幫助我們處理很多瑣碎的事情,比如一鍵壓縮代碼、圖片,一鍵合並JS,檢測文件更新等。

4.模塊化

隨著web2.0時代的到來,Ajax技術得到廣泛應用,前端代碼日益膨脹,而前端模塊化能夠方便我們對項目代碼的維護,進行按需載入,從長遠角度來看對我們提高項目的開發效率同樣大有益處。

在ES6出來之前應該說前端代碼本身不具備實現模塊的功能,我們必須要使用一些模塊化載入器來實現,比如RequireJS、SeaJs等。而隨著ES6的普及,目前像RequireJS、SeaJs這樣的工具已經沒有存在的必要了。所以在基於ES6的開發環境下我建議使用ES6的模塊化功能來實現我們的前端模塊化。

5.組件化

前端組件化的概念也是由來已久,我們可以通過將我們的代碼劃分成不同組件來實現功能公用,一個同樣的功能我們可能不用再次編寫相同的代碼,同時也可以提高前端代碼的可維護性和清晰度。以下是目前流行的前端框架Vue的單文件組件的概念圖:

我們可以將公用的組件抽離,將大組件拆分成小組件的形式實現前端組件化,組件與組件之間可以存在父子關系,也可以存在兄弟關系。在Vue的單文件組件中,一個組件包含了其HTML、CSS、JS的代碼片段。

6.前後端分離

前後端分離的項目對提升前端開發效率非常有幫助,因為前端不再需要後台配置路由、搭建伺服器環境、編寫模板等,這樣一來前端的生產力就會得到很大程度的解放,但是前後端分離的項目有利也有弊,如下圖所示:


最終我們需要根據項目需求衡量利弊來決定是否使用前後端分離的模式。

7.規范與模式

團隊協作離不開編碼規范和開發模式的幫助。遵循編碼規範文檔可以幫助我們在團隊開發時提高合作開發的效率。一個團隊遵循一套編碼規范可以使每個人的代碼寫出一個人的風格,這樣團隊間相互審查、測試、完善功能時會非常高效。下方是一些開源的前端編碼規範文檔:

  • 網頁鏈接

  • 首頁-TGuide

  • 網頁鏈接

  • 網頁鏈接

  • 除了編碼規范我們在開發時經常會沿襲了一些已經存在的模式來解決問題,比如當用JS編寫彈框時我們往往會用到單例模式,用CSS編寫動畫時直接套用動畫的常用屬性等,我們不再需要從頭開始思考某一個功能的實現,這就是模式帶來的意義。

    結語

    當然除了以上7點,對於前端來說需要提高開發效率的地方還有很多,可謂任重而道遠。只有將前端無序、繁雜的操作組織起來,利用工具簡化、規范前端流程,才能實現項目構建、開發、維護的一體化。希望本文能夠給初識前端的同學帶來啟發並付諸實踐。