前端重构之路01
在 CodeInsight 开发告一段落之后,CTO 大人找到我说要想一个把 Coding.net 的前端拆分重构的方案,于是我从一个欢脱的开发状态开始切换到要面对一句魔咒的考验。 动态语言一时爽,代码重构火葬场。 不管怎么样,先从梳理现状开始。 Coding 前端使用 Angular 构建,前端工程化还是使用合并文件打包的方式,并没有引入 CommonJS 之类的模块化开发方式,作为一个 SPA 网站,随着网站规模的增大,前端代码开始越来越臃肿,开发体验也直线下降,这是我们考虑重构的原因。 所以首先我们要想清楚重构要解决的问题 代码打包拆分,避免所有功能模块打包到单一的文件 引入 CommonJS 做到更清晰的模块化 边开车边换轮子 要做到最后一点尤其困难,但这也是我们能否顺利重构的关键,重构不是重写,所以如何在现有代码基础上重构,并且还要和当前的开发进度无缝衔接起来就是我们所要面临的一个挑战。 好消息是我们使用了 Angular 保证了我们的代码分 Module 有了一层封装,不至于太过散乱。作为一个 SPA 网站,前端路由已经很好的分离出了各个功能模块。我们用到了 Grunt,虽然有点过时,task 写得有点复杂,但是提供了一个工程化的切入口。 经过小伙伴们几轮讨论之后,最终确定了一套比较靠谱的方案: 按照功能模块重新整理/拆分代码 保持作为一个 SPA 网站