Skip to content

yangboOne/module

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

为什么要使用模块化

当我们的项目开发得越来越复杂,就不得不面临2个问题

  • 冲突
  • 依赖

对于冲突,我们用一个简单的例子来描述这个问题。
比如你的同事开发了一个叫做slider.js的组件,而根据需要,你需要使用这个组件来完成你自己的功能,那么这个时候有一个问题。当你引入这个组件,然后一运行,发现报错了,结果你才发现,在slider.js中,有这样一段代码.

var timer = null;
timer = setInterval();

可是在你自己的代码当中,刚好也是使用了这个叫做timer的变量来定义自己的定时器。于是这个时候就会产生不必要的麻烦。这就是冲突问题。

关于依赖问题,我也有一个简单的例子来说。这个时候产品经理一个需求来,要实现一个XXX功能,你在开发这个功能的时候,你的同事告诉你,需要用到playgame.js组件。于是你引入了playgame.js进行开发

<script src= "playgame.js"></script>

可是呢,duang的一声,报错了,你百思不得其解,于是与同事沟通,同事才一拍脑门,哦,不好意思,忘记了告诉你,playgame.js还需要赖一个叫做a.js的文件。问题总算解决了,于是你又引入了a.js

<script src="a.js"></script>
<script src="playgame.js"></script>

OK,没有问题了,搞定。于是你在用到了playgame.js的10个地方都添加了a.js.可是后来,产品变需求了,playgame.js功能扩展,不但要依赖a.js,还需要依赖b.js,没办法,你又要在10个地方都添加上b.js

<script src="a.js"></script>
<script src="b.js"></script>
<script src="playgame.js"></script>

再到后来,觉得playgame.js功能太过庞杂,效率很低,优化之后呢,又不要a.js了。这个时候,为了减少叶面加载的压力,又只好无可奈何的删掉a.js的引用。变成了

<script src="b.js"></script>
<script src="playgame.js"></script>

可是删掉之后发现,报错了,为什么?为了解决这个问题加班加点,放了女朋友的鸽子,晚上被半夜回家被锁门外,凄凉的度过一个寒冷的夜晚,回想刚才的bug潸然泪下,原来尼玛还有另外一个叫做run.js的文件也要依赖a.js,加回去就OK,真尼玛的坑爹啊.

<script src="a.js"></script>
<script src="b.js"></script>
<script src="playgame.js"></script>
<script src="run.js"></script>

终于在万般折磨之下,你终于对这个项目很熟悉了,从一个新人变成了老油条,可是当另外一个新人来的时候,你发现要带他解决这个问题你自己也头大。周而复始,这个项目终于因为这个依赖问题,坚持不下去了,公司也倒闭,哈哈,脑洞大开。所以为了解决冲突和依赖的问题,模块化应运而生。

当然模块化对于性能的提升,代码后期的维护,都有着十分重要的效果,在学习中,我们慢慢体会。

About

模块化学习笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published