写给大忙人看的模块化

模块化思想

模块化是一种设计思想,利用模块化可以把一个非常复杂的系统结构细化到具体的功能点,每个功能点看做一个模块,然后通过某种规则把这些小的模块组合到一起,构成模块化系统。

模块化的概念

从成产角度,模块化是一种生产方式,这种生产方式体现了两个特点:

  1. 生产效率高:
    灵活架构,焦点分离。
    多人协生互不干优。
    方便模块间组合、分解。
  2. 维护成本低:
    可分单元群式。
    方便单个横块功能调试、升级。

现在已经清楚了现实生活中的模块化,其实在程序中也有很多摸块化的例子,例如程序中的常见日期模块(Date), 数学计算模块(Math), 日志模块,登录认证模块,报表展示模块等,所有模块组成一个程序教件系统。
同样,当某个模块出现问题时,只需要修改当前模块,而不影响其他模块的代码。程序模块化与现实生活中的模块化相似,从程序开发角度,模块化是一 种开发模式,也有两个特点:

  1. 开发效事高:方便代码重用,对于别人开发好的模块功能可以直接拿过来使用,不需要重复开发类似的功能。
  2. 维护成本低:软件开发周期中,由于需求经常发生变化,最长的阶段并不是开发阶段,而是维护阶段,使用模块化开发的方式更容易维护。

模块化开发

了解了模块化后,读者可能有些疑问,模块化虽然有很多优势,但是它具体解决了编程人员在开发过程中的哪些问题?下面看下非模块化开发会遇到哪些问题。

1. 命名冲突
在多人协作开发应用,或者使用第三方开发的JavaScript库的时候,通常会遇到命名冲突问题,例如全局变量中名称重复会报错,示例代码如下:
var foo='bar'; var foo='baz';
另外,如果引用第三方的JavaScript库,在全局对象中声明了一个属性foo,自己的代码中也会声明同样名称的属性,两者一同使用的时候,后加载的属性值会替换之前的值,从而造成错误。
模块化开发的优点在于可以解决上述问题,让开发人员能很好地与他人协同,程序方面进行代码复用。那么,模块化是如何解决命名空间的呢?
2. 文件依赖
在开发过程中,可能需要很多文件依赖,示例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>文件依赖</title>
</head>
<body>
    <script src="./ccc. js"></script>
    <script src="./a. js"></script>
    <script src="./b. js"</script>
    <script src="./c. js"></script>
    <script src="./d. js"></script>
    <script src="./aaa. js"></script>
</body>
</html>

从上述代码中,./aaa.js 是依赖于./a.js 文件的,但是从代码上并不能看出这样的关系。如果将./aaa.js 与./ajs 的前后位置调换,或者删除./a.js 文件,就会导致程序错误。
在模块化开发中,会使用JavaScript代码来加载所需要的文件,并不需要将所有的文件引人到HTML文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值