背景
因公司商业模式调整,致力于融合两种产品,整合功能提供一个更加完整的软件服务系统。其实核心可能是为了拉通两个产品的用户和流量,更好的赚钱吧。
简介
多个老系统都是教育服务系统,经过多年沉淀积累了还比较客观的用户量。系统采用了angular1 + bootstrap 开发,gulp集成打包。
目标
权限拉通、数据迁移成功、功能无损集成、功能可插拔、技术架构新颖、一个月初始版本发布。
前置问题
新系统需要从各个老系统团队抽人,投入力度不强。成员磨合需要时间、需求需持续讨论确认。
预演
一、拆分老系统
经讨论前端把单页面系统拆分成多个服务,每个服务可以单独运行。实现以修改gulp打包逻辑为主,只打包公共模块代码和单服务业务代码,单独部署web服务。
二、搭建新系统
经讨论采用Vue+ ElementUI搭建,核心考虑可插拔和功能无损。设计一套权限树,Web端主要先定义一套树形Json静态文件配合国际化Json文件完成前置依赖构建。权限树的数据决定系统目录结构(eg:目录层级、目录名称、图标、路由、路由对用服务地址等),权限树、国际化、数据字典等在运维系统中维护。
设计上新系统支持本身组件包可插拔、也支持第三方服务插拔,甚至支持第三方整体服务插拔,第三方服务采用iframe集成。
-
预演系统国际化、系统换肤等公共功能
-
初步定义插拔规则
-
利用阿里图库/icomoon按需构建自定义icon库
三、打通框架与第三方服务数据依赖
-
分析老系统Api权限运作模式
-
在框架级别拉通各个老系统token、公共依赖等,完成单点登录
-
设置各个第三方服务代理,迎合浏览器同源策略
-
完成框架上对内嵌服务系统的部分改造,减少单独对各个服务的改造工作量
四、搭建新系统的运维系统
采用Vue +ElementUI搭建,初步编写用户管理、权限管理、数据字典管理、国际化管理等功能。