大型 Android 系统重构实战
黄俊彬
Thoughtworks 资深咨询师
2840 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
大型 Android 系统重构实战
15
15
1.0x
00:00/00:00
登录|注册

结束语|以重构为动力,让遗留系统焕发新生

你好,我是黄俊彬。
不知不觉,课程接近尾声,感谢你的一路相伴。前面我们一起学习了如何通过自动化、系统化和工程化这三个关键方法来治理遗留系统,深入探讨了遗留系统的架构分析、架构设计、代码重构以及工程管理等诸多内容。
现在系统重构的学习之旅即将告一段落。今天,我还想和你分享三点“意识”层面的改变,这对于我们落地遗留系统改造同样重要。

自我要求

第一点是自我要求。所谓预防大于治疗,针对遗留系统道理也是如此。我们要充分利用好各种守护措施来保证代码合入前的质量,对自己编写的每一行代码足够重视。
就拿我之前参与改造的一个大型健康类 App 来说吧,代码规模在 200W 行左右,开发人员在 100+ 左右,一次全量编译接近 15 分钟。代码人员规模庞大,代码耦合很严重,光靠加人已经无法推动产品快速响应迭代。
我们在业务上也听到了众多不同角色的反馈。
产品经理说:一个简单的特性适配一款设备需要 4 人月。
开发人员说:这个代码,改不动 …
运营人员说:工作效率较低,配置活动成本很高,难度大。
某健康类App架构改造示意图
对于这样的系统,只是对一个核心模块做重构打样,就花了接近 3 个人月的时间(因为前面花费接近 1/3 的时间做系统设计及分析)。不难发现,我们前期多点投入,代价要远比后期去偿还小很多。这也是我们常说的质量内建,因为缺陷发现得越晚,修复的成本就越高。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

重构是一种重要的技术手段,可以让遗留系统焕发新生。本文从三个“意识”层面出发,分享了对遗留系统改造的重要认识。首先,强调了自我要求的重要性,提倡质量内建,早发现问题并及时修复。其次,强调了积少成多的理念,通过小步迭代、化整为零的方式,逐步改善系统。最后,强调了持续改进的重要性,指出遗留系统的技术债务需要主动、持续地改进甚至重构,以适应变化。文章通过实例生动地阐述了这些观点,并强调了重构的意义不仅在技术上,更在于提升团队的工作状态和工程文化。文章内容丰富,深入浅出,对于想要了解遗留系统重构的读者具有很高的参考价值。

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

全部留言(1)

  • 最新
  • 精选
  • peter
    请教老师几个问题啊: Q1:准备开发一个APP,持续集成方面,麻烦老师推荐一个方案。Github Action?or Jenkins? Q2:安卓APP,通过wifi和外部设备通信,会有安全问题吗?是不是wifi这种无线方式不安全? Q3:怎么知道AS所用的c++版本?AS4.2创建JNI项目,怎么知道编译所用的c++版本? Q4:service不是一个线程,也不是一个进程。那么,service运行在哪里?是运行在主线程吗? Q5:有开源的IM吗?类似微信一类的比较好的IM APP。

    作者回复: Hi,peter。 Q1:可以考虑Jenkins。生态丰富,资料也多。 Q2:我理解这里应该考虑的是通信协议的安全性。 Q3:可以参考一下NDK版本的说明:https://developer.android.google.cn/ndk/downloads/revision_history?hl=zh-cn Q4:service也可以配置成独立的进程。 Q5:我目前了解的没有,只有一些UI的高仿。

    2023-04-12归属地:北京
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部