代码改变世界

模块化

2015-11-29 23:48  we星星  阅读(156)  评论(0编辑  收藏  举报

模块化的需求是规模的产物,当web page金华到webapplication,浏览器端处理的逻辑越来越复杂,展现的样式和动画越来越多,对于工程的要求也是越来越高。于是模块化的需求也就产生了。

 

模块化的意义:

 

  • 组件的服用,降低开发成本和维护成本
  • 组件单独开发,方便分工合作
  • 模块化遵循,方便自动化依赖管理,代码优化,部署

js长久依赖被认为是简单的脚本语言,实际上情况早就发生了变化,在新版的ECMA-262(ES6)文档中抢单js是通用编辑语言而不是脚本语言。监本语言比如Shell并不是用来完成复杂功能的,只是用来做一些自动化控制,是不需要模块化的,而用于构建复杂系统通用编程语言(比如JAVE)一般都是模块化的实现。

 

1.模块化的标准

 

ES6之前,js并没有原生的模块机制,好在js非常零花,有很多写法,可以将代码天然隔离,起到模块化的功能

 

//define

var modules = {}

modules .mod1 = {

  foo:function(){...},

  bar : function(){...}

  ...

}

//call

modules.mod1.foo()

 

在客服端这种法师基本是够用的,然而问题依然存在:你无法管理依赖,所有的代码都必须load到内存中,需要哪些模块辟邪由人工处理。分模块是工程化的产物,也是自然发展的结果,自然有很多尝试。很显然,模块之间互相依赖需要编写模块的时候遵循一定的规范。现存的规范还真不少,不知道ES6能否直接这场混战:

  • AMD
  • CMD
  • closure
  • commonJS
  • ES6