今天學了一下JS的模塊化編程,感受JavaScript真的是博大精深,CommonJS,requireJS,NodeJS,Seajs,在此記錄一下經驗。JavaScript設計之初並非一種模塊化編程語言,不支‘類’和‘模塊’的概念,但ES6中卻將正式支持"類"和"模塊"。有了模塊,咱們能夠更方便地使用別人的代碼,想要什麼功能,就加載什麼模塊。 不過這樣作的前提是你們必須以一樣的方式編寫模塊,考慮到Javascript模塊如今尚未官方規範,所以各類規範應運而生。javascript
咱們先來看看什麼是模塊化?html
模塊化是一種將系統分離成獨立功能部分的方法,可嚴格定義模塊接口、模塊間具備透明性。模塊化思想在後臺語言中應用比較常見。java
模塊化有什麼優缺點呢?node
優勢:程序員
(1)可維護性 能夠靈活架構,實現焦點分離,方便單個模塊功能調試、升級,方便模塊間組合、分解,多人協做互不干擾 。 npm
(2)可分單元測試 。編程
缺點:瀏覽器
(1)對dom操做支持較弱,固然也可使用jq;
(2)Html中過多指令、事件綁定的操做,耦合度較高服務器
下面介紹兩個概念:架構
內聚度 指模塊內部實現,它是信息隱藏和局部化概念的天然擴展,它標誌着一個模塊內部各成分彼此結合的緊密程度。
好處也很明顯,當把相關的任務分組後去閱讀就容易多了。
設計時應該儘量的提升模塊內聚度,從而得到較高的模塊獨立性。
耦合度 則是指模塊之間的關聯程度的度量。耦合度取決於模塊之間接口的複雜性,進入或調用模塊的位置等。
與內聚度相反,在設計時應儘可能追求鬆散耦合的系統。
目前,通行的Javascript模塊規範共有兩種:CommonJS和AMD+CMD。
推薦閱讀 阮一峯老師的文章 感受講的十分詳盡。