首页 > 代码库 > JS的模块化编程
JS的模块化编程
今天学了一下JS的模块化编程,感觉JavaScript真的是博大精深,CommonJS,requireJS,NodeJS,Seajs,在此记录一下经验。JavaScript设计之初并不是一种模块化编程语言,不支‘类’和‘模块’的概念,但ES6中却将正式支持"类"和"模块"。有了模块,我们可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 不过这样做的前提是大家必须以同样的方式编写模块,考虑到Javascript模块现在还没有官方规范,因此各种规范应运而生。
我们先来看看什么是模块化?
模块化是一种将系统分离成独立功能部分的方法,可严格定义模块接口、模块间具有透明性。模块化思想在后台语言中应用比较常见。
模块化有什么优缺点呢?
优点:
(1)可维护性 可以灵活架构,实现焦点分离,方便单个模块功能调试、升级,方便模块间组合、分解,多人协作互不干扰 。
(2)可分单元测试 。
缺点:
(1)对dom操作支持较弱,当然也可以使用jq;
(2)Html中过多指令、事件绑定的操作,耦合度较高
下面介绍两个概念:
内聚度 指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。
好处也很明显,当把相关的任务分组后去阅读就容易多了。
设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。
耦合度 则是指模块之间的关联程度的度量。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。
与内聚度相反,在设计时应尽量追求松散耦合的系统。
目前,通行的Javascript模块规范共有两种:CommonJS和AMD+CMD。
推荐阅读 阮一峰老师的文章 感觉讲的十分详尽。
JS的模块化编程