模块化到底可以深入多少?

今早的时候,我突然考虑到一个问题,就是我一直念念不忘的模块化,到底可以怎么走。

事实上,这一突发的想法来自于我昨晚用YSlow的时候,YSlow给出的建议,其中有一项是CDN的建议。我早上的时候才想到,HTML5支持的特性之一就是本地化存储,现在多用于游戏或者需要处理较多数据的时候,一个节约时间和资源的办法。

如果网站加载的内容中,固定的风格界面和JS文件,通过本地存储,在重新打开页面的时候,由本地完成这一部分预加载,那么剩余的部分就很有限了,甚至对于简单的页面,只需要传输文本内容,文本内容有多少?很少,传输起来我觉得某种程度上来说移动的GPRS加载都可以获得和现在的网页浏览一样的效果,连3G网络都不需要。

这一点再早一点,来自于我对firefox启动速度的解决方法的考虑,自从我开始更多的做实验和写一些小工具的时候发现,我打开firefox的速度并不慢,至少我没有明显的感觉。后来我发现这一变化的原因,在于我不是开机就使用firefox.这一点发现给了我启发,或许对firefox的速度的指责,来自于那些重度依赖网络的人群,那些在开机之后马上需要接入网络的人群。

如果以上假设成立的话,那么解决这个问题,似乎有点小困难,因为计算机的启动顺序是有定的优先级的,显然系统的组件是优先加载的,难道把firefox的部分模块加入开机启动项?这显然违背了firefox的原则,而且某种程度上来说,这也算是一种作弊的行为。另外,还得知道WINDOWS是如何处理启动问题的,哪些模块优先?按照哪种方式加载?对于firefox来说这显然不太靠谱,但是这是仍然是解决问题的办法之一。

从一些角度可以发现,至少微软已经发现了这个问题,在安装MS的一些程序的时候,我们可以看到这样的选项:从本机全部运行 or 使用时进行安装。换句话来重新解释:把全部组件和设置安装好 or 先安装基础部分,其他部分在需要的时候再安装。

我第一次开始觉得模块化可以深入使用的时候是在高中,汶川地震之后,新闻报道中,建筑的坍塌在某种程度上来说是另一个重要的死亡愿意,毕竟地震本身只是在地下和地表的板块活动,只要人没有陷入裂缝,没有被地表坠落物砸到,是不会产生危险的。所以我认为,如果建筑在剧烈作用下不得不分离、或者被破坏,那么完全可以放弃那部分,就像人的身体衣物着火之后,脱掉着火的部分一样。如果这栋建筑的某个方向被撕裂,那么这个方向从整体脱离,另外一半依然稳固在位置上,可以减小灾难损失。

这种思想后来就在我的脑中扎根,灵活地模块化分割与组装,提高组件的利用率,我几乎设想这样的思路可以运用到每一个地方去。

但是,模块化到底可以多深入,以及有什么样的后果,我还不清楚。