首页 > 代码库 > 模块化开发(一)

模块化开发(一)

1、Node.js解决命名冲突和文件依赖的问题。

2、模块化开发的优点:
       生产角度:一种生产方式,生产效率高,维护成本低
       软件开发角度:一种开发模式,一种写代码的方式,开发效率高,方便后期维护
3、什么是模块化开发?
      模块化:就是把一个非常复杂的一个系统给具体的细化:细化到各个小功能点,然后通过某种方式,或者说某种规则,把这些模块集合到一起,就构成了模块化系统
4、模块化演变:
    全局函数:全局变量污染,无法保证不与其他模块发生变量命名冲突;模块成员之间看不出直接关系
    对象命名空间:优点:从理论意义上减少了命名冲突。但是暴漏了所有的模块成员,内部状态可以被外部改写,不安全;并且命名空间越来越长
    函数私有空间:
        利用函数作用域机制实现了私有共有成员成员的分离
        私有空间内的变量和函数不会影响全局作用域
        jQuery、underscore 等都采用了这种方式
    维护和开发:
        当一个模块很大的时候,就需要将该模块分成几个部分
        软件开发思想:开闭原则
            对于扩展是开放的(应用需求变更的时候,可以对模块在不修改源代码的情况下扩展功能)
            对于修改是关闭的(对模块的行为进行扩展时,不必改动模块的源代码)
    第三方依赖:
            依赖注入
            降低模块之间的耦合度
            模块职责要保持单一性
            通过在参数中注入依赖项的方式体现出了模块之间的依赖关系
5、例如:_count   这种以下滑来命名的一般表示的是对象的私有属性,规范就是不想被外部所访问。
6、大部分第三方库都是使用匿名函数自执行的方式来实现模块化,更好的解决冲突和私有空间问题。
7、模块扩充的方法:
     var ob= (
        function 1 () {}
        function 2 () {}
        var a ;
        ......
        return {
        1 : 1,
        2 : 2,
        a : a,
         ......
     )()
    var ob = (function(o){
         o.f1 =function (){}
         return  o
        }
    )(ob || {})
8、模块化的理解:
    CSS中的模块化:
    a. @import url(‘./././‘)
    b. 相当于seaJs 中的 requires

模块化开发(一)