亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

php工程獅感知的前端工作流程

binaryTree / 1275人閱讀

摘要:在這種背景下,誕生了很多工具很多前端工作流程。目前我們很多時(shí)候常說(shuō)的前端工程師,其實(shí)主要指的就是其工程師。所以就是來(lái)解決這些問(wèn)題的最后至此前端的一個(gè)工作結(jié)構(gòu)介紹至此結(jié)束。

這個(gè)時(shí)代不懂點(diǎn)前端知識(shí),真的沒(méi)有辦法生存。就算不會(huì)寫(xiě),也得了解它的原理吧!

最近做了一些總結(jié),之前都是迷迷糊糊,搞不清楚前端之前的相關(guān)定位。好好梳理了一下。錯(cuò)誤之處請(qǐng)各位指正。

本文主要說(shuō)的是 JavaScript 工作流程

目前前端真的該叫大前端,其越來(lái)越細(xì)化,越來(lái)越復(fù)雜。在這種背景下,誕生了很多工具很多前端工作流程。比如熱門的:

react

vue

webpack

babel

gulp

node.js

npm

nvm

angular

bower
... ...

如果繼續(xù)寫(xiě),估計(jì)光這個(gè),字?jǐn)?shù)久能夠達(dá)到1000+
這里邊有的是前端js框架,有的是一些開(kāi)發(fā)工具,但他們種類這么多,各自能夠解決什么問(wèn)題?互相之間有什么聯(lián)系?是不是一個(gè)項(xiàng)目就必須用上這么多東西?使用時(shí)候,如何相互配合?

帶著這些疑問(wèn),作為一個(gè)后端程序員,進(jìn)行了系列調(diào)查,要把我的成果分享出來(lái)(可能錯(cuò)誤百出)。
首先前端開(kāi)發(fā)的三大基礎(chǔ):

html 這個(gè)是最基礎(chǔ)的,被稱為:超文本標(biāo)記語(yǔ)言。什么意思?簡(jiǎn)單來(lái)說(shuō)就是描述一個(gè)頁(yè)面的結(jié)構(gòu),比如:頁(yè)面的頭部,頁(yè)面的內(nèi)容,頁(yè)面的尾部。也就說(shuō),它控制一個(gè)頁(yè)面的結(jié)構(gòu)。瀏覽器會(huì)按照它定義的結(jié)構(gòu)來(lái)進(jìn)行解析,顯示不同內(nèi)容。

css 我們對(duì)美的追求是無(wú)止境的,光有結(jié)構(gòu),看起來(lái)沒(méi)有色彩,有些地方不突出。就像衣服:原始人用樹(shù)葉、獸皮,隨著進(jìn)步,我們穿絲綢、破洞牛仔,搭配絲巾、手表等等,所以就是用來(lái)控制html的樣式,讓它變的更好看。

JavaScript 這是本文主要闡述的地方,有了html+css,顯然還不能滿足我們的追求,會(huì)html、css的人不能叫做前端工程師、更不能叫程序媛。但是如果你會(huì)了 JavaScript,江湖就有你的依稀之地,這也是本文主要介紹的部分。

目前我們很多時(shí)候常說(shuō)的前端工程師,其實(shí)主要指的就是其 js工程師。在Web世界里,只有JavaScript能跨平臺(tái)、跨瀏覽器驅(qū)動(dòng)網(wǎng)頁(yè),與用戶交互。

功能越強(qiáng)大,責(zé)任也越多?,F(xiàn)在 js(后面全部使用簡(jiǎn)稱,字太多,不想寫(xiě))使用的越來(lái)越多,早期 js 僅僅用來(lái)做一些簡(jiǎn)單的交互,隨著現(xiàn)在移動(dòng)互聯(lián)網(wǎng)的發(fā)展,各項(xiàng)硬件設(shè)備的性能提升。項(xiàng)目越來(lái)越復(fù)雜,效果越來(lái)越酷炫。js 做的事情也更多。

當(dāng)然今天不講這么多發(fā)展歷史(關(guān)鍵是我也沒(méi)理清呀),總的來(lái)說(shuō)就是 js 開(kāi)發(fā)工作原來(lái)比較簡(jiǎn)單,大家隨便寫(xiě)寫(xiě)久搞定工作了,但是現(xiàn)在工作的復(fù)雜度越來(lái)越高,像以前那么任性的工作,開(kāi)發(fā)麻煩、維護(hù)麻煩。還好具備程序員三大美德人,開(kāi)始構(gòu)建一些工具。

Perl語(yǔ)言的發(fā)明人Larry Wall說(shuō),好的程序員有3種美德: 懶惰、急躁和傲慢(Laziness, Impatience and hubris)。

懶惰:

是這樣一種品質(zhì),它使得你花大力氣去避免消耗過(guò)多的精力。它敦促你寫(xiě)出節(jié)省體力的程序,同時(shí)別人也能利用它們。為此你會(huì)寫(xiě)出完善的文檔,以免別人問(wèn)你太多問(wèn)題。
急躁:
是這樣一種憤怒----當(dāng)你發(fā)現(xiàn)計(jì)算機(jī)懶洋洋地不給出結(jié)果。于是你寫(xiě)出更優(yōu)秀的代碼,能盡快真正的解決問(wèn)題。至少看上去是這樣
傲慢:
極度的自信,使你有信心寫(xiě)出(或維護(hù))別人挑不出毛病的程序

先是大家感覺(jué)js代碼復(fù)用是個(gè)問(wèn)題,我們想用別人寫(xiě)的某個(gè)功能,只能網(wǎng)上去翻別人寫(xiě)的源碼,拷貝下來(lái)。后段語(yǔ)言都有自己的包管理工具,比如:java的maven,python的pip,php的composer等。于是在歷史的使命召喚中,npm誕生了,js的包管理工具。
比如以前要使用 jquery,你的到官網(wǎng)去下載,現(xiàn)在 npm install jquery 就可以了。

npm是運(yùn)行在node的環(huán)境上,它們的關(guān)系又是另外一個(gè)話題,這里按下暫且不表。
像 react、vue都可以通過(guò)npm來(lái)安裝。

包管理的問(wèn)題解決了,接下來(lái)又有另外一個(gè)問(wèn)題,由于 js 是 Brendan Eich 這大哥花了 10 天時(shí)間設(shè)計(jì)的(牛人就是這么屌)。雖然如今廣泛應(yīng)用,也由于時(shí)間緊導(dǎo)致留下了很多設(shè)計(jì)缺陷。

伴隨了 ES6 的發(fā)布,js越來(lái)越規(guī)范了,我們程序員肯定都想用好用的簡(jiǎn)潔的語(yǔ)法來(lái)完成任務(wù),好早點(diǎn)下班回家打lol呀??上а剑澜缟铣砂偕锨f(wàn)的網(wǎng)站,不可能一下子全部升級(jí),瀏覽器也不可能立馬就支持最新語(yǔ)法,怎么辦?babel 誕生了,它牛逼在那里?讓你可以用es6的語(yǔ)法寫(xiě)代碼,然后在現(xiàn)在的環(huán)境下可以運(yùn)行(在這里請(qǐng)自行忽略ie9以下瀏覽器)。

在你用es6寫(xiě)完代碼后,用它轉(zhuǎn)碼一下,可以得到es5的代碼。不信?來(lái)個(gè)例子:

// 轉(zhuǎn)碼前
input.map(item => item + 1);

// 轉(zhuǎn)碼后
input.map(function (item) {
  return item + 1;
});

上面的原始代碼用了箭頭函數(shù),Babel 將其轉(zhuǎn)為普通函數(shù),就能在不支持箭頭函數(shù)的 JavaScript 環(huán)境執(zhí)行了。

另外 babel 其實(shí)也是用js寫(xiě)的一個(gè)工具,所以它還是可以通過(guò) npm install babel-cli 來(lái)安裝。

關(guān)于它怎么用,自己看官方文檔。

好。到目前為止,解決了兩個(gè)大問(wèn)題。接著看前端還有什么問(wèn)題?那么在開(kāi)發(fā)中還有什么問(wèn)題需要解決?合并文件、壓縮代碼、檢查語(yǔ)法錯(cuò)誤、將Sass代碼轉(zhuǎn)成CSS代碼等等這些都是開(kāi)發(fā)中的重復(fù)性任務(wù),以前這些任務(wù)都需要多帶帶人工解決,然后為了提高效率,早點(diǎn)下班,就有了:Gulp Grunt這些task runner。推薦使用gulp來(lái)自動(dòng)化的執(zhí)行這些任務(wù)。

那么到了這里,是不是就截止了?還沒(méi)有,現(xiàn)在的基本都講究什么前后端分離,也就是變成了web app的方式,那么就要求頁(yè)面重新加載要變少,用戶交互要變多,也就導(dǎo)致一個(gè)頁(yè)面上js越來(lái)越多。這么多的js怎么管理?如何提高瀏覽器的加在速度?能否將css img html 字體這些資源也當(dāng)成模塊來(lái)處理?在這些問(wèn)題下,產(chǎn)生了很多模塊打包工具,毫無(wú)疑問(wèn):webpack是最耀眼的,也是用起來(lái)最爽的。

所以模塊打包的問(wèn)題也解決了,另外說(shuō)一句,gulp的部分功能可能通過(guò)webpack的插件也能解決,但并不意味著不再需要它,一般來(lái)說(shuō)gulp運(yùn)行在webpack之后。

再次聲明,上面所有介紹的東西,都可以通過(guò)npm來(lái)安裝獲得。所以說(shuō)到底它們都是用js寫(xiě)的一個(gè)工具。

ok,那么工具基本介紹完了,到底頁(yè)面怎么呈現(xiàn)給用戶?后臺(tái)傳過(guò)來(lái)的數(shù)據(jù)怎么綁定到dom里邊去?如果向后臺(tái)發(fā)起請(qǐng)求獲得數(shù)據(jù)?等等,這些需要一個(gè)js業(yè)務(wù)框架來(lái)完成。所以react、vue就是來(lái)解決這些問(wèn)題的

最后

至此前端的一個(gè)工作結(jié)構(gòu)介紹至此結(jié)束。再瞎逼逼兩句,學(xué)習(xí)是一件持續(xù)的事情,在學(xué)習(xí)某個(gè)新東西前,先要對(duì)它是干嗎的,它解決一個(gè)什么樣的問(wèn)題有個(gè)認(rèn)識(shí),然后面對(duì)知識(shí)你才能在自己的腦海中建立一個(gè)體系。

參考了很多資料,貼在這里供參考:

[1] 我們?yōu)槭裁葱枰猈ebpack?

[2] Vue 對(duì)比其他框架

[3] Webpack、Browserify和Gulp三者之間到底是怎樣的關(guān)系?

[4] Babel-轉(zhuǎn)碼器

[5] 用自動(dòng)化構(gòu)建工具增強(qiáng)你的工作流程!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/82319.html

相關(guān)文章

  • Django項(xiàng)目前端工程探索

    摘要:項(xiàng)目前端工程化的探索不通過(guò)層實(shí)現(xiàn)非網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。做過(guò)這樣項(xiàng)目的各位攻城獅應(yīng)該都知道有多痛苦吧。仔細(xì)想來(lái),其實(shí)只是想要模板和靜態(tài)資源,我們可以直接在目錄下寫(xiě),當(dāng)然也可以開(kāi)一個(gè)前端工程來(lái)寫(xiě),最后把模板和靜態(tài)資源到工程的相應(yīng)目錄下。 Django項(xiàng)目前端工程化的探索 不通過(guò)node層實(shí)現(xiàn)非SPA網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。 技術(shù)棧:webpack + jade + es6 + scss +...

    jsummer 評(píng)論0 收藏0
  • Django項(xiàng)目前端工程探索

    摘要:項(xiàng)目前端工程化的探索不通過(guò)層實(shí)現(xiàn)非網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。做過(guò)這樣項(xiàng)目的各位攻城獅應(yīng)該都知道有多痛苦吧。仔細(xì)想來(lái),其實(shí)只是想要模板和靜態(tài)資源,我們可以直接在目錄下寫(xiě),當(dāng)然也可以開(kāi)一個(gè)前端工程來(lái)寫(xiě),最后把模板和靜態(tài)資源到工程的相應(yīng)目錄下。 Django項(xiàng)目前端工程化的探索 不通過(guò)node層實(shí)現(xiàn)非SPA網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。 技術(shù)棧:webpack + jade + es6 + scss +...

    buildupchao 評(píng)論0 收藏0
  • Django項(xiàng)目前端工程探索

    摘要:項(xiàng)目前端工程化的探索不通過(guò)層實(shí)現(xiàn)非網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。做過(guò)這樣項(xiàng)目的各位攻城獅應(yīng)該都知道有多痛苦吧。仔細(xì)想來(lái),其實(shí)只是想要模板和靜態(tài)資源,我們可以直接在目錄下寫(xiě),當(dāng)然也可以開(kāi)一個(gè)前端工程來(lái)寫(xiě),最后把模板和靜態(tài)資源到工程的相應(yīng)目錄下。 Django項(xiàng)目前端工程化的探索 不通過(guò)node層實(shí)現(xiàn)非SPA網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。 技術(shù)棧:webpack + jade + es6 + scss +...

    Jackwoo 評(píng)論0 收藏0
  • Django項(xiàng)目前端工程探索

    摘要:項(xiàng)目前端工程化的探索不通過(guò)層實(shí)現(xiàn)非網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。做過(guò)這樣項(xiàng)目的各位攻城獅應(yīng)該都知道有多痛苦吧。仔細(xì)想來(lái),其實(shí)只是想要模板和靜態(tài)資源,我們可以直接在目錄下寫(xiě),當(dāng)然也可以開(kāi)一個(gè)前端工程來(lái)寫(xiě),最后把模板和靜態(tài)資源到工程的相應(yīng)目錄下。 Django項(xiàng)目前端工程化的探索 不通過(guò)node層實(shí)現(xiàn)非SPA網(wǎng)頁(yè)開(kāi)發(fā)的前后端分離。 技術(shù)棧:webpack + jade + es6 + scss +...

    HackerShell 評(píng)論0 收藏0
  • 鳥(niǎo)瞰前端 , 再論性能優(yōu)化

    摘要:前端性能優(yōu)化的涉及點(diǎn)從服務(wù)器到協(xié)議再到宿主環(huán)境本身都要有比較深刻的認(rèn)識(shí),業(yè)界目前主要還是以雅虎總結(jié)出來(lái)?xiàng)l前端性能優(yōu)化的黃金軍規(guī)為參考。 歡迎大家前往騰訊云技術(shù)社區(qū),獲取更多騰訊海量技術(shù)實(shí)踐干貨哦~ 導(dǎo)語(yǔ) : 從事前端有6年+的時(shí)間了,從最開(kāi)始的美工到重構(gòu)再到偏向js邏輯開(kāi)發(fā)的前端開(kāi)發(fā),一直在前端這個(gè)行業(yè)里面摸索和學(xué)習(xí),我現(xiàn)在將自己這些年的一個(gè)心得體會(huì)來(lái)個(gè)系統(tǒng)性的梳理寫(xiě)成一篇關(guān)于性能優(yōu)化...

    voidking 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<