知识共享许可协议

IoC 在前端模块化中的实践应用

前端模块化背景

在大部分单页式应用中,前端代码都是以 MV* 的结构来组织的,好处自然不必多说。在开始一个项目时,我们往往会将项目的业务功能纵向切分成多个子业务功能, 以模块的形式分配给团队各个开发人员,以达到最大的并行开发。随着业务的发展,新的项目也越来越多,我们会发现很多新的项目和现有的项目是有不少功能交集的。

从业务角度来看,一个项目就是由各个模块组合而成:A 项目由 m1, m2, m3 组合而成, B 项目则可能由 m1, m3, m4 组合而成。

在业务上将各个功能拆分明确后,很明显的 m1, m3 两个功能在 A 项目都是存在的,从工程角度来说,开发 B 项目的时候如果能够直接将A项目已经开发完毕的 m1, m3 直接复用, 那么必然是能够带来很明显的人力节约。

接下来就是从技术上去实现功能的复用,对于后端来说,通常的做法是服务化接口,而对于前端来说,我们目前的方案正是前端模块化:将功能打包为模块,发布至内部中央仓库, 使用方通过自己的方式(如:npm, bower, link[import], 百度的 edp, fis 等)导入模块包使用。

按照前端模块化的思路,开发新项目时,开发人员的工作从原来的开发所有功能变为:接入已有的功能模块,开发不存在的功能模块。

阅读全部