遗留系统现代化实战
姚琪琳
Thoughtworks 资深咨询师
5615 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 30 讲
用户故事 (1讲)
遗留系统现代化实战
15
15
1.0x
00:00/00:00
登录|注册

25|成果验证:如何评价遗留系统现代化项目的成败?

你好,我是姚琪琳。
前面我们用了四节课的时间,解决了在拆分遗留系统时会遇到的种种难题。接下来就到了“提交答卷”的重要时刻,也就是遗留系统现代化的成果验证。
如果团队费时费力做完了改造,就撤出或解散了,没有后续的数据追踪和指标度量,改造成效就无法很好地展示出来。这样,领导和业务方对成效的感知就会很弱,下次可能就不会再投入资源做类似的改造了。
编筐编篓,全在收口,这节课我们就来聊聊成果验证的方法,让你的遗留系统改造项目在掌声中落下帷幕。

功能验证

首先,当一个任务改造完成后,我们需要对它进行功能方面的测试,以确保改造后的功能和改造前的功能是一致的。
这种不改变软件外在行为的“改造”其实就是重构,只不过不是代码级别,而是架构级别的重构。通常,代码级别的重构我们会用单元测试来保证重构的正确性,那对于这种架构级别的重构,应该如何来保证呢?

并行核对

我们前面的课程中一直在说,要基于特性开关做人工的 A/B 测试。其实A/B 测试原本是用于用户体验分析的,收集用户对 A、B 两个软件版本的真实反馈来进行选择。我们这里将其作为验证重构正确性的工具,算是扩大了它的外延。
其实这种方法有一个专门的名词,叫做并行核对(Parallel Run with Reconciliation)。只不过手工进行的并行核对还是略显麻烦,更好的方式是将该过程自动化。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了遗留系统现代化项目成果验证的重要性,并提供了多种验证方法。首先,功能验证是关键,可以通过并行核对、E2E测试、集成测试和数据对比等方式来验证重构的正确性。另外,动态开关工具也是一种验证重构正确性的方式,可以通过Feature Toggle as a Service等服务来管理特性开关。在发布到生产环境前,可以使用蓝绿部署、灰度发布等高频发布技术来降低发布风险。文章还介绍了假设验证的重要性,以及如何收集并对比数据来验证最初的假设是否成立。最后,强调了有效的成果验证对团队士气和改造的价值都具有重要意义。整体而言,本文提供了丰富的实践经验和技术指导,对于进行遗留系统现代化的读者具有重要参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《遗留系统现代化实战》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • aoe
    改造遗留系统的过程中,因为添加功能测试发现了一些 Bug,改造后代码质量提高了,节省了很多找 Bug 的时间。

    作者回复: 恭喜,初步体会到了遗留系统现代化带来的成效。提醒一下,最好把bug率作为指标进行度量,让所有人知道这些成效~

    2022-06-08
    2
    3
  • 金尚
    老师我做的是旧系统重构但是没有旧系统的源码怎么搞?

    作者回复: 重构是在不改变软件外在行为的前提下提升代码质量,没有源码,代码质量也就无从提升了。这时你可以把遗留系统看做黑盒,使用气泡上下文等模式跟它进行交互

    2022-10-28归属地:河北
  • peter
    请教老师一个问题: 用Java开发的网站,基于SpringBoot + SpringCloud,前端包括:android、iOS、Vue开发的网页。 这样的网站,其测试有比较通用的自动化测试工具吗?

    作者回复: 建议还是写四套测试:后端、三种前端各写各的。因为前端的体验是不一样的,变化方向也是不一样的,如果为了省事儿写一份,最后可能导致为了适配三种情况而难以维护。

    2022-06-08
  • 沐氡
    scientist 支持Java吗
    2023-05-07归属地:陕西
  • 子夜枯灯
    感谢。期待老师提到的“活文档”工具尽快开源。
    2022-06-06
    1
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部