本文目錄一覽:
javascript模塊化是什麼及其優缺點介紹
如今backbone、emberjs、spinejs、batmanjs
等MVC框架侵襲而來。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模塊化的JavaScript撲面而
來。web前端已經演變成大前端,web前端的發展速度之快。
1)我們來看看什麼是模塊化?
模塊化是一種將系統分離成獨立功能部分的方法,可將系統分割成獨立的功能部分,嚴格定義模塊接口、模塊間具有透明性。javascript中的模塊在一些C、PHP、java中比較常見:
c中使用include 包含.h文件;php中使用require_once包含.php文件
java使用import導入包
此中都有模塊化的思想。
2)模塊化的優缺點:
a優點:
可維護性
1.靈活架構,焦點分離
2.方便模塊間組合、分解
3.方便單個模塊功能調試、升級
4.多人協作互不干擾
可測試性
1.可分單元測試
b缺點:
性能損耗
1.系統分層,調用鏈會很長
2.模塊間通信,模塊間發送消息會很耗性能
3)最近的項目中也有用到模塊化,
使用的是seajs,但是當引用到jquery,jquery easyui/或者jquery
UI組件時,有可能會用到很多jquery插件,那這樣要是實現一個很複雜的交互時,模塊間的依賴會很多,使用define()方法引入模塊會很多,不知
有么有什麼好的方法?
4)附:
內聚度
內聚度指模塊內部實現,它是信息隱藏和局部化概念的自然擴展,它標誌着一個模塊內部各成分彼此結合的緊密程度。好處也很明顯,當把相關的任務分組後去閱讀就容易多了。 設計時應該儘可能的提高模塊內聚度,從而獲得較高的模塊獨立性。
耦合度
耦合度則是指模塊之間的關聯程度的度量。耦合度取決於模塊之間接口的複雜性,進入或調用模塊的位置等。與內聚度相反,在設計時應盡量追求鬆散耦合的系統。
CMD 規範是不是就是 commonJS 規範
CMD是國內玉伯大神在開發SeaJS的時候提出來的,屬於CommonJS的一種規範,此外還有AMD,其對於的框架是RequireJS
1、二者都是異步模塊定義(Asynchronuous Module Definition)的一個實現;
2、CMD和AMD都是CommonJS的一種規範的實現定義,RequireJS和SeaJS是對應的實踐;
3、CMD和AMD的區別:CMD相當於按需加載,定義一個模塊的時候不需要立即制定依賴模塊,在需要的時候require就可以了,比較方便;而AMD則相反,定義模塊的時候需要制定依賴模塊,並以形參的方式引入factory中。
區別看下邊例子:
//AMD方式定義模塊
define([‘dep1′,’dep2’],function(dep1,dep2){
//內部只能使用制定的模塊
return function(){};
});
//CMD
define(function(require,exports,module){
//此處如果需要某XX模塊,可以引入
var xx=require(‘XX’);
});
4、JavaScript語言是弱結構性的,通過CommonJS定義一些規範,CMD和AMD得定義模塊的方式對代碼進行管理,使得更易維護;此外,NodeJS的誕生,對模塊的規範定義,和包(npm)的概念的引入,讓JS管理不再困難,一個字,爽爆了!
簡述什麼是commonjs,以及其與nodejs的關係
自從CommonJS和NodeJS兩個項目的出現,JavaScript作為本地編程語言的這種特殊應用形式,才開始進入進入大眾的視野。
說明什麼是CommonJS。 另外隨着並行計算的普及,像JavaScript這種函數式語言,由於其固有的易於進行並行計算的特性,將有更廣闊的應用前景。
什麼是【CommonJs】
CommonJs 是一種 JavaScript 語言的模塊化規範,它通常會在服務端的 Nodejs 上使用。項目是由多個模塊組成的,模塊和模塊之間的調用,需要各個模塊有相同規範的 API,這樣一來在使用的過程中不會有那麼多的學習成本,並且對於單個模塊來說是類聚的。
在 CommonJs 的模塊化規範中,每一個文件就是一個模塊,擁有自己獨立的作用域、變量、以及方法等,對其他的模塊都不可見。CommonJS規範規定,每個模塊內部,module 變量代表當前模塊。這個變量是一個對象,它的 exports 屬性(module.exports)是對外的接口。加載某個模塊,其實是加載該模塊的 module.exports 屬性。require 方法用於加載模塊。
模塊化規範給項目帶來極大的好處,在業務複雜,模塊眾多的大型項目中,開發者都遵循相同的規則來開發各自的模塊,他們通過規範來約束模塊的定義,大家不需要太多的溝通或者大量的文檔來說明自己的模塊使用規則,成千上萬的模塊就這樣生產,並能夠容易的使用。它的意義不僅是讓模塊看起來很規範,在合作開發、社區中傳播中也起到了重大的作用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/230351.html