大型前端项目的架构

将应用程序拆分成许多小组件是很好的做法,但存在某些潜在的问题值得思考:

1.模块可重用性有多少

一个模块是否可以独立存在?如果在你的项目里随便找一个模块,可否让我直接放在一个新的页面里就可以开始运行了呢?你也许会质疑这样做背后的理由,不过我还是建议你得考虑未来:如果你的公司决定多个应用里都加入某个相同的功能,是否可以很简单完成呢?例如,有人说:“我们的用户很喜欢我们开发的聊天功能,我们把这个功能也放到新的开发的协作应用上吧”。

2.有多少模块需要依赖其他模块呢?

他们是很紧密地依赖着吗?从模块的粒度来看,我知道不太可能会有个模块完全不依赖其他的模块。但在功能粒度级别上,一个功能可以是几个模块所构成,而且不需要依赖于任何模块。

3.如果某模块失效了,你的应用还能运行吗?

假设你正在开发一个像Gmail的应用,而你的webmail模块突然失去作用,这个时候其他部分的UI展示或其他功能,例如聊天模块,必须还能运行正常。另外,我曾经提过一种动态加载模块机制,例如在Gmail这个例子里,当应用初始化启动后,前提是代码是不包含聊天模块,但如果用户这个时候想到用聊天功能时,应用才会去开始加载这个聊天模块的代码来执行,而且不影响到其他功能。

4.可以很容易地测试每个模块吗?

当一个模块处于百万数量级的用户在使用,它很可能就会被重复利用在其他的应用里,这时候我们必须对他做完整的测试。当模块独立存在时,需要被测试,当模块被引用到应用里,更需要被测试,这样才可保证这模块的健壮。

发布了18 篇原创文章 · 获赞 9 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xueyue616/article/details/105215557