zoukankan      html  css  js  c++  java
  • 跨语言重构踩坑之旅1

    重构直播项目背景:
    1、php语言编写系统
    2、该直播项目需要用到第三方声网服务
    3、业务迭代了很多般,业务模块设计较差,业务功能杂乱
    4、原php项目对应开发人员全部离职
    5、产品本身对原有功能逻辑也不熟,但业务还在迭代更新,抽调其他组php去进行业务迭代更新
    6、原项目表采用mongo表

    人力资源:Java开发4 php转java开发2 前端3

    java语言进行重构:
    给出的重构方案:
    总体目标:重构一期为实现后台菜单的重构,保留原有功能,保持c端接口不变,数据需要进行mysql结构化存储,老的直播能在新的直播系统中正常使用
    实行结果中的疑难点:1、产品给出的原型图只有页面UI,没有功能交互逻辑,java开发照着功能页面进行表结构设计,缺少原功能接口内部逻辑可能会导致功能逻辑遗漏
    (如果php开发每个接口去梳理,工作量巨大,而且php开发有对应的功能开发工作)
    2、对接声望服务逻辑需要php重新梳理,在什么功能里掺杂了对声网的什么交互
    3、新业务的迭代们需要不断在重构里增加修改功能逻辑
    4、最困难的点(新老功能字段拆分对应,数据迁移问题),老的数据表是mongo表,缺少必要字段,需要根据每个接口梳理字段,对应到mysql结构化字段中,但是java无法梳理原有接口逻辑,php开发承担的化业务量过重;
    5、数据迁移,梳理好字段对应关系,进行老数据迁移,一是首先进行全量数据迁移。但是c端不动,导致部分数据会落到老数据库mongo中,会导致数据库数据在c端的数据不一致,需要mongo增量数据到mysql;
    另外新后台中创建直播,老版本的App也无法看到,需要mysql再增量到mongo对应表中。
    整体方案进展,原定一个月开发时间,后延期至一个半月,仍卡点在各个点上,导致前后端连基本联调都不通。总体阻塞点非常高,基本确定方案实行不通,重构代价过于复杂、沉重

    重新设计方案:
    1、重构直播项目,功能最简原则,满足基本的直播开播需求,后台C端一起重构,总体工作量适中。数据方面直接做隔离,老的在老系统中看,新的直播在新的系统里面配置。
    老的在老系统里正常迭代功能,新的项目小步快跑迭代,直接做最新的功能,最终达到新老功能的一致性。
    前端页面显示一致性问题,可以由c端接口做聚合操作,等半年后在下线老系统半年前的直播(也可以一年后下线)

  • 相关阅读:
    js实现打字机效果(完整实例)
    纯css高斯背景模糊(毛玻璃,伪元素,完整实例)
    vue首次缓存判断
    vue使用bus.js在兄弟组件传值
    叶子节点和tensor的requires_grad参数
    Mysql 8.x初次安装过程中遇到MySQL 服务无法启动的解决方法
    Apriori算法介绍(Python实现)
    springBoot单参数校验全局异常抛出
    解决vue 动态添加标签给标签添加自定义方法显示not function问题
    macbook pro、gitlab、SourceTree提交代码
  • 原文地址:https://www.cnblogs.com/flgb/p/15714316.html
Copyright © 2011-2022 走看看