zoukankan      html  css  js  c++  java
  • 模块化开发(一)

    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
  • 相关阅读:
    2020去奔跑
    2020前两个月学习心得
    2020年1_2月寒假学习心得
    寒假中期考核个人总结
    Numpy、Matplotlib和pandas学习路线引导
    Python学习路线引导-Python入门基础
    2019在路上
    2020/11/28助教一周小结(第九周)
    2020/11/3助教一周小结(第五周)
    2020/10/25助教一周小结(第四周)
  • 原文地址:https://www.cnblogs.com/z-one/p/6641069.html
Copyright © 2011-2022 走看看