14 | 架构现代化 :如何改造老城区后端?
姚琪琳
![](https://static001.geekbang.org/resource/image/a9/64/a90e826c65dce02db3e066e2538abf64.jpg)
你好,我是姚琪琳。
在上一节课中,我们学习了如何重构遗留系统的前端,一共分成了八个步骤,其中最后一个步骤是 API 治理。这其实就是去重构遗留系统的后端。
在第九、十节课,我们已经从代码层面讲解了如何重构和分层。而这节课,我们主要会从架构层面,带你看看在面对一个新需求或技术改进的时候,如何更好地重构和组织后端代码。
如果说在气泡上下文中开发新的需求,类似于老城区旁边建设一个新城区,那么在遗留系统中开发新的需求,就类似于在老城区内部开发新的楼盘。这就必然要涉及到拆迁的问题。
拆迁终归是一个声势浩大的工程,居民要先搬到别的地方,再拆除旧的建筑,盖起新的楼宇,一番折腾之后,老居民才能搬进新家。不过软件的好处就在于它是“软”的,不需要这么费劲儿。你可以很容易地复制、删除和添加新的代码,轻松地实现一个架构的变迁。
修缮者
绞杀植物模式适合于用新的系统和服务,替换旧的系统或旧系统中的一个模块。在旧系统内部,也可以使用类似的思想来替换一个模块,只不过这个模块仍然位于旧系统中,而不是外部。我们把这种方式叫做修缮者模式。
![](https://static001.geekbang.org/resource/image/4e/4a/4efdb7aa98481f6096a665cfd514484a.jpg?wh=1920x584)
在修缮时,我们通过开关隔离旧系统待修缮的部分,并采用新的方式修改。在修缮的过程中,模块仍然能通过开关对外提供完整功能。
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文介绍了在面对新需求或技术改进时,通过架构层面的重构和组织后端代码来实现现代化的方法。作者提出了修缮者模式和抽象分支模式两种优雅的重构方式。修缮者模式通过开关隔离旧系统待修缮的部分,并采用新的方式修改,以保障系统的正常运行。另一种优雅的重构方式是抽象分支模式,通过将大的重构项目分解成多个小步骤,逐步完成架构的调整,实现增量演进。文章还提到了抽象分支模式在实际工作中的广泛应用,以及在初始化Redis时的替换实例。此外,文章还介绍了扩张收缩模式和接缝的概念,并提出了利用这些模式来实现架构中的替换的方法。总的来说,本文通过两种重构方式的介绍,为读者提供了在面对老城区后端重构时的实用技术思路。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《遗留系统现代化实战》,新⼈⾸单¥59
《遗留系统现代化实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- aoe博客《如何优雅地替换一个实现》中电风扇实现接口隔离的例子很生动形象2022-05-136
- 子夜枯灯很接地气的文章,希望场景实例多一些。感谢作者大大的分享2022-05-111
- 公号-技术夜未眠十八般武艺,招招精彩2022-05-111
收起评论