必要的准备步骤1. 获取尽可能多的资料理解历史包袱的上下文2. 画出相关逻辑的时序图,以便分析执行流程2. 确定问题是什么3. 确定问题的影响范围边界4. 确定目标所负责的范围边界5. 列出所有依赖当前目标的事物6. 确定依赖是如何建立的7. 制定解决方案
制定解决方案隔离历史包袱,避免添加新的依赖,避免增加复杂度。使用 Adapter Pattern 做转接。使用小的,增量的改进替换,渐进构建新的处理系统。始终保证旧方案可用,新方案也可用。分流业务,将部分业务从旧方案分给新方案处理。当新方案完成,将所有业务都迁移到新方案,在所有稳定之前,保留旧方案和 Adapter,以作回退方案。等新方案足够稳定,去掉旧方案和 Adapter。
参考How to conquer legacy codeAt some point in your developer career, your boss will hand you a piece of legacy code - code that someone else wrote a long time ago. Your boss will tell you to learn this legacy code, fix it, and add new features to it. I've been in this situationhttps://medium.freecodecamp.org/conquer-legacy-code-f9e23a6ab758