重构,是任何一个技术团队都无法绕过和回避的话题。

重构的原因有很多,可能是伴随着业务的发展与升级,系统无法快速支持需求迭代,这时就有了重构的念头,一般情况下不建议对老系统进行重构,毕竟重构是有代价的。

我最近参与了一个重构项目,接下来给大家分享下,我在重构业务系统过程中的经验总结。

1. 了解系统

接到重构任务后,不要立刻动手执行重构,而是对当前的业务流程和架构状态有个清晰的了解,如果开发过当前系统的同事还在公司,一定要拉着同事好好讨论。

我们要知道系统一定是给人用的,是给哪些人用的?不同的人使用系统的侧重点有哪些不同?他们使用系统主要是解决什么问题?这些问题我们一定要弄清楚。

要知道怎么给自己创建不同角色的用户,然后登录系统进行操作使用,如果涉及到了一些专有名词,一定要和团队成员沟通并达成一致。

2. 业务流程图

通过了解系统之后,清楚业务的核心流程,这时要按照理解绘制 业务核心流程图,这里面涉及到与各系统的交互,需要考虑跨系统之间的交互可否使用异步完成,尽量减少循环调用的情况,同时还要确定出当前系统的边界。核心流程图画好了,还要根据不同的业务分支绘制 业务各分支流程图

这种图有很多工具都可以画,软件可以使用 EdrawMax,在线版可以使用 ProcessOn

3. 业务功能模块图

根据业务流程图、业务各分支流程图,我们要确定出哪些功能模块?各功能模块之间是如何交互的?原来数据是如何存储的?根据以上问题,我们要绘制 业务功能模块图 ,然后再绘制 业务各模块详细图

根据模块详细图,需要画出清晰的层次结构,梳理出 提供给他方的接口(约定接口名称) 和 依赖他方的接口,这时还要考虑规划出系统需要的基础服务功能,比如日志记录,监控预警等,然后根据功能点考虑分工,并评估出排期。

4. 约定时间

  1. 接口文档约定完成时间

  2. 开发完成时间

  3. 联调完成时间

  4. 自测完成时间

  5. 提测时间

  6. 上线时间

如果开发时间比较长,开发期间还要约定 “里程碑时间” ,整体采取前紧后松的节奏,先往前赶,保证在 “里程碑时间” 符合预期。

5. 约定规范

  1. 编码规范

  2. 代码管理规范

  3. 例会规范(早、晚会制度)

例会规范,让项目人员轮流主持,鼓励每人发言,及时给予反馈。

6. 非技术问题

舒缓团队的压力,给予团队更多的鼓励,定期向团队同步状态,得到大家的理解和支持,还有一些无法把控的各系统间交互沟通,我们要做到与各对接方坦诚沟通。

7. 上线准备

上线前做好上线准备,充分准备出需要提前配置的东西,同时想好 B 方案。

8. 上线后复盘

这个点非常重要,总结这过程中的经验与不足,同时表扬大家做了一件很牛X的事情,团建一波 Happy 起来。

小结

以上,仅供参考。

上面的这个过程,其实是重点关注了 研发计划管理 和 研发项目管理 ,关于 研发质量管理 如果没时间的话,可以上线后再制定计划完善。

重构业务系统,我是这样做的相关推荐

  1. 用ECS做HexMap:重构地图系统

    基于Unity2019最新ECS架构开发MMO游戏笔记20 概述 概念 原型Archetypes 内存块 实体查询EntityQuery 任务Jobs 系统组织 优化地图系统 主世界 六边形单元生成系 ...

  2. 业务系统技术架构的方法论

    业务类系统(通常称为To B 类产品),一般包括crm,供应链,物流等.系统的架构设计非常具有挑战性. 面向用户的To C 类前台产品,无论产品经理还是用户都已经培养起了使用习惯,对功能有一定程度的理 ...

  3. 实战总结:我是怎么从0到1做后台业务系统的?

    本文由作者 无人知晓 发布于社区 前言 从0到1设计一套系统,是一个产品经理成长的必经之路.在过去几年中,我积累了很多企业内部业务系统从0-1的经验,本文重点将其进行抽象总结,并总结那些掉进去的坑和是 ...

  4. 阿里资深技术专家:如何对复杂的业务系统进行解耦和重构?

    要明白实际上微服务后续出现的诸多问题往往都是一开始微服务模块划分就不合理导致,对于具体的模块划分方法和原则,我在上面文章里面给出了以下几点. 原则1:划分为<10个微服务模块 原则2:强数据关联 ...

  5. abap al设置单元格可编辑 oo_利用WPS做业务系统的超级编辑器

    业务系统中的数据很笼统的分可以分为两大类,一个是结构化的,通常用关系型数据库来存储管理:一个是非结构化的,在这类数据中,可能最多.价值密度最大的就是文档.如何更便捷高效的生成或分析文档,就是业务系统通 ...

  6. 针对业务系统的开发,如何做需求分析和设计1

    今天,我通过一个积分兑换系统的开发实战,一方面给你展示一个业务系统从需求分析到上线维护的整个开发套路,让你能举一反三地应用到所有其他系统的开发中,另一方面也给你展示在看似没有技术含量的业务开发中,实际 ...

  7. 500-1000人的科技企业怎么做10多套业务系统和员工的统一认证管理?

    某科技型企业成立于2009年,主要从事ICT基础设施.云基础架构软件研发和服务,通过提供最适合的技术,已为1万多家企业构建复杂业务系统和应用软件. 该企业发展十分迅速,在去年成功上市.为了更好地提高企 ...

  8. 【设计模式之美 设计原则与思想:设计原则】23 | 实战一(上):针对业务系统的开发,如何做需求分析和设计?

    对于一个工程师来说,如果要追求长远发展,你就不能一直只把自己放在执行者的角色,不能只是一个代码实现者,你还要有独立负责一个系统的能力,能端到端(end to end)开发一个完整的系统.这其中的工作就 ...

  9. 陕西二级分销系统开发适合做什么业务?

    二级分销的具体层级划分,还有分佣的层级大家都已经很清楚了,那我们该如何去看自己的业务适不适合做二级分销呢? 二级分销的受众范围还是非常广的,比如说我们经常可以用到的日用品,或者是一些价格比较低的快消品 ...

最新文章

  1. 721合约 erc eth_深入了解「智能合约」及主流平台「智能合约」的查询方法
  2. Ruby DSL介绍及其在测试数据构造中的使用(1)
  3. Ubuntu下环境变量设置
  4. java 自定义 operator_java8 自定义Collector
  5. 博客园7月底至8月初51Aspx源码发布详情
  6. OpenCV形态学运算
  7. 密度图的密度估计_R-ggridges包:山峰叠峦图
  8. 安装 EoLinker_4.0 开源版
  9. [地图SkyLine二次开发]框架(2)
  10. win10计算机休眠快捷键,键盘快捷键关闭或休眠Windows 10 | MOS86
  11. 美丽的夜,一个程序员的思考
  12. Mac OS中显示及隐藏文件和文件夹的方法
  13. 史上最全maven教程
  14. 网线简介及交换机原理和模式浅谈
  15. win10 全屏秒退
  16. DSPE-PEG-GE11,磷脂-聚乙二醇-肿瘤细胞表皮生长因子肽GE11
  17. Docker存储卷简述和测试
  18. linux运行雷神之锤,Ubuntu下多人射击类游戏 Quake Live 雷神之锤
  19. 载药脂质体并表面修饰各种分子定制
  20. 如何修改DWcc2018版的注释颜色和其他一些样式

热门文章

  1. 马自达推出首个混合动力车型
  2. 华硕主板无盘启动bios设置_【华硕主板bios启动顺序】华硕主板bois启动项_华硕主板bios硬盘启动...
  3. XPE启动蓝屏或FBA反复重启的问题
  4. 【ECshop错误集锦】解决ECShop发送邮件提示:Error: need RCPT command
  5. 极客时间《软件工程之美》学完感
  6. Fraud Busters
  7. 你知道旧金山名称的由来么?
  8. c语言实现调和平均数
  9. 手写笔迹还原算法(InkCanvas)
  10. 弱人工智能时代,如何跨越技术与产品的鸿沟?