某教育系统拆分重组预演

223 阅读2分钟
原文链接: mp.weixin.qq.com

    

背景

因公司商业模式调整,致力于融合两种产品,整合功能提供一个更加完整的软件服务系统。其实核心可能是为了拉通两个产品的用户和流量,更好的赚钱吧。

简介

多个老系统都是教育服务系统,经过多年沉淀积累了还比较客观的用户量。系统采用了angular1 + bootstrap 开发,gulp集成打包。

目标

权限拉通、数据迁移成功、功能无损集成、功能可插拔、技术架构新颖、一个月初始版本发布。

前置问题

新系统需要从各个老系统团队抽人,投入力度不强。成员磨合需要时间、需求需持续讨论确认。

预演

一、拆分老系统

经讨论前端把单页面系统拆分成多个服务,每个服务可以单独运行。实现以修改gulp打包逻辑为主,只打包公共模块代码和单服务业务代码,单独部署web服务。

二、搭建新系统

经讨论采用Vue+ ElementUI搭建,核心考虑可插拔和功能无损。设计一套权限树,Web端主要先定义一套树形Json静态文件配合国际化Json文件完成前置依赖构建。权限树的数据决定系统目录结构(eg:目录层级、目录名称、图标、路由、路由对用服务地址等),权限树、国际化、数据字典等在运维系统中维护。

设计上新系统支持本身组件包可插拔、也支持第三方服务插拔,甚至支持第三方整体服务插拔,第三方服务采用iframe集成。

  • 预演系统国际化、系统换肤等公共功能

  • 初步定义插拔规则

  • 利用阿里图库/icomoon按需构建自定义icon库

三、打通框架与第三方服务数据依赖

  • 分析老系统Api权限运作模式

  • 在框架级别拉通各个老系统token、公共依赖等,完成单点登录

  • 设置各个第三方服务代理,迎合浏览器同源策略

  • 完成框架上对内嵌服务系统的部分改造,减少单独对各个服务的改造工作量

四、搭建新系统的运维系统

采用Vue +ElementUI搭建,初步编写用户管理、权限管理、数据字典管理、国际化管理等功能。