一、含义
我们实现一个应用时(不管是web、桌面还是移动端),通常都会按照不同的功能,分割成不同的模块来编写,编写完之后按照某种方式组装起来成为一个整体,最终实现整个系统的功能。
二、注意
如果一个团队一起做一个复杂的应用,分模块分工合作时,需要注意的点:
- 模块中定义的资源不应该污染全局环境,否则多人协作困难且容易出错。
- 各个模块可独立工作,即便单组模块出现故障也不影响整个系统工作。
- 各模块不能全部预先加载,应该实现按需自动加载。确保每个模块高效运行,又能节约资源,提高效率。
C、C++、Java、PHP等等编程语言本身就拥有可以实现模块化的指令或方法,有了这些指令或方法,就可以把子功能写在另外的文件上,需要用到的时候直接引入即可。例如:
- c使用 #include 包含.h文件
- php中使用 require_once 包含.php文件
- java使用 import 导入包
抛开C、C++、Java、PHP这些不说,就说前端领域,认真想想,其实 html css 也实现了模块化。
-
html 中的
-
css 中有 @import "
/
.css " 指令可以导入其他css
三、优点
可维护性:
- 多人协作互不干扰
- 灵活架构,焦点分离
- 方便模块间组合、分解 、解耦
- 方便单个模块功能调试、升级
可测试性:
- 可分单元测试
四、问题
-
依赖关系不好管理。
-
全局环境的污染。
-
命名冲突
五、避免全局环境污染的方法
- 只创建一个全局变量作为当前应用的容器,