日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

說起模塊化開發(fā)大家想必都不陌生,特別是隨著前端應(yīng)用復(fù)雜化,代碼呈倍數(shù)增長,我們不得不耗費大量的時間去進(jìn)行管理,模塊化也就逐漸的被大家所接受。

所以具體來講的話,模塊化開發(fā)就是指將復(fù)雜的應(yīng)用功能分為多個模塊進(jìn)行開發(fā),這樣一來一個模塊就是實現(xiàn)特定功能的文件,有了模塊,最直接的價值就是我們可以更方便地管理代碼,甚至是直接引入使用別人的代碼,想要什么功能,就加載什么模塊。

模塊化開發(fā)的發(fā)展

其實早期 JAVAScript 的模塊化是基于文件劃分的方式去實現(xiàn)的,這是我們 web 當(dāng)中最原始化的模塊系統(tǒng),當(dāng)然這個方式下有幾個突出的問題,例如命名沖突、全局污染等。

后面我們采用命名空間方式,約定每一個模塊只暴露一個全局的對象,所有的模塊成員都掛載到這個對象下面,具體做法就是在 JavaScript 的模塊化的基礎(chǔ)上,將每一個模塊包裹成為全局對象的方式去實現(xiàn),類似于在模塊內(nèi)去為我們的模塊一些成員去添加命名空間,但這種方式有一個明顯的問題就是沒有解決模塊之間的依賴性問題。

再到后面也出現(xiàn)了立即執(zhí)行函數(shù)的方式(IIFE),他的原理就是將每一個模塊都放到函數(shù)私有作用域當(dāng)中,對于需要暴露的成員,再通過掛載到全局對象的方式去實現(xiàn),這里也有一個實際的例子:

;(function () {
var name = 'module1'
function moduleFn() {
console.log(name + '---> moduleFn');
}
window.module1 = {
moduleFn: moduleFn
}
})()

而發(fā)展至今,模塊化開發(fā)又有了新的發(fā)展和技術(shù)實現(xiàn)方式,特別是在混合應(yīng)用快速發(fā)展的今天,應(yīng)用功能更加多樣,代碼更加復(fù)雜,模塊化開發(fā)的重要性似乎成為一項共識。

模塊化開發(fā)的優(yōu)點

如果要說模塊化開發(fā)和傳統(tǒng)開發(fā)模式最大的區(qū)別,個人認(rèn)為除了實現(xiàn)的方式不一致外,其實模塊化開發(fā)還能在開發(fā)效率、便捷度上面有不小的提升。更為具體來講,我認(rèn)為主要體現(xiàn)在以下四個方面:

1、架構(gòu)靈活,焦點分離

在模塊化開發(fā)中模塊化本身能夠根據(jù)實際需求和變化進(jìn)行靈活的調(diào)整和擴(kuò)展,可以將系統(tǒng)劃分為不同的層次,如數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層等。這種分層設(shè)計方式可以降低系統(tǒng)的耦合性,在一定程度上提升系統(tǒng)的擴(kuò)展能力。

焦點分離上面則表現(xiàn)為可以將關(guān)注點分為功能需求和性能需求,然后分別進(jìn)行開發(fā)和測試,從而實現(xiàn)系統(tǒng)復(fù)雜性的降低。

2、方便模塊間組合、分解

在模塊化開發(fā)中,組合和分解都很好理解,組合顧名思義就是指將不同的模塊按照一定的方式組裝起來,這樣可以實現(xiàn)更為復(fù)雜的功能或場景,而分解反過來就是將一個復(fù)雜模塊分解為若干個簡單的子模塊,以便更好地功能實現(xiàn)和維護(hù)。

3、方便單個模塊功能調(diào)試、升級

當(dāng)我們采用模塊化開發(fā)后,很多的復(fù)雜功能成為單獨的一個模塊,如果對于某個模塊需要進(jìn)行功能的debug或者升級,那可以很快的針對這個功能模塊開展,而不用牽一發(fā)而動全身。

4、多人協(xié)作互不干擾

這個非常好理解,由于模塊化本身就是系統(tǒng)解耦方式實現(xiàn)的,分為多個模塊化也就對應(yīng)著多個代碼包,這樣一來相互協(xié)作不受影響也是提升效率的一種方式。

模塊化開發(fā)的現(xiàn)狀

模塊化也是隨著技術(shù)的發(fā)展不斷的更新,例如目前受到眾多開發(fā)者青睞的開發(fā)方式就包括依賴打包和依賴加載。

1、依賴加載

目前這種方式是應(yīng)用較為廣泛的,像 require js、sea.js等,除了編寫規(guī)范不一樣,實際都是通過相關(guān)require api把模塊 chunk 文件拿回來,當(dāng)加載完成之后再運行邏輯代碼。

2、依賴打包

經(jīng)典代表就 Webpack,其實就是寫代碼的時候分開模塊,但打包的時候按依賴關(guān)系找到各個模塊,最后打包到同一個文件上,并給每個chunk標(biāo)識id,運行邏輯代碼時將模塊引用指向該id,從而實現(xiàn)模塊化。

3、小程序化

此外,隨著微信、支付寶等App的實踐,小程序容器技術(shù) FinClip 也成為模塊化的一種選擇,他的原理其實就和前面模塊化開發(fā)的模式一直,將復(fù)雜緊耦合的功能應(yīng)用解耦為一個一個的小模塊,但不同的是這些小模塊的承載方式都換為了小程序,從開發(fā)和管理的角度來看更為簡約一些。

如果以一個復(fù)雜的手機銀行app為例,相當(dāng)于應(yīng)用小程序容器技術(shù)將臃腫的APP功能打散,功能模塊互相解耦,每個業(yè)務(wù)功能都最小化、積木化、樂高化的小程序。

分享到:
標(biāo)簽:模塊
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定