今天学了一下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。
推荐阅读 阮一峰老师的文章 感受讲的十分详尽。