zoukankan      html  css  js  c++  java
  • 论javascript模块化的优缺

    如今backbone、emberjs、spinejs、batmanjs 等MVC框架侵袭而来。CommonJS、AMD、NodeJS、RequireJS、SeaJS、curljs等模块化的JavaScript扑面而来。web前端已经演变成大前端,web前端的发展速度之快。
    1)我们来看看什么是模块化?
    模块化是一种将系统分离成独立功能部分的方法,可将系统分割成独立的功能部分,严格定义模块接口、模块间具有透明性。javascript中的模块在一些C、PHP、java中比较常见:

    c中使用include 包含.h文件;php中使用require_once包含.php文件
    java使用import导入包
    此中都有模块化的思想。

    2)模块化的优缺点:

    a>优点:
    可维护性
    1.灵活架构,焦点分离
    2.方便模块间组合、分解
    3.方便单个模块功能调试、升级
    4.多人协作互不干扰
    可测试性
    1.可分单元测试


    b>缺点:
    性能损耗
    1.系统分层,调用链会很长
    2.模块间通信,模块间发送消息会很耗性能


    3)最近的项目中也有用到模块化,使用的是seajs,但是当引用到jquery,jquery easyui/或者jquery UI组件时,有可能会用到很多jquery插件,那这样要是实现一个很复杂的交互时,模块间的依赖会很多,使用define()方法引入模块会很多,不知有么有什么好的方法?


    4)附:
    内聚度
    内聚度指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。好处也很明显,当把相关的任务分组后去阅读就容易多了。 设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。

    耦合度
    耦合度则是指模块之间的关联程度的度量。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。与内聚度相反,在设计时应尽量追求松散耦合的系统。

  • 相关阅读:
    前端ajax传数据成功发送,但后端接收不到
    POST 400 (BAD REQUEST)
    chrome浏览器本地文件支持ajax请求的解决方法
    系统可能不会保存你所做的修改 onbeforeunload
    bootstrap 常用class(不定时更新)
    webstrom 一直反复indexing
    setInterval传递参数
    在CentOS 7上安装GitLab
    「Githug」Git 游戏通关流程
    分布式版本控制系统Git——图形化Git客户端工具TortoiseGit
  • 原文地址:https://www.cnblogs.com/pangblog/p/3297039.html
Copyright © 2011-2022 走看看