常用¶
系统重构时,除了设计到位,保证系统能够平滑过渡也很重要。技术角度多考虑数据如何迁移,如何实现系统的灰度改造,分阶段上线,减少风险。出问题时,要有 B 计划兜底。
Branch by Abstraction¶
想对遗留系统做改造,传统的做法是,拉出一个分支。
如果在一个分支上怎么做呢?可以考虑采用 Branch by Abstraction:
动手改造之前,先提取出来一个抽象, 把原先的实现变成这个抽象的一个实现, 然后,改造的过程就是提供这个抽象的一个新实现。 这种做法对设计能力有一定要求,所以,对很多团队来说,这是一个挑战。
其他¶
你的领域层只依赖于你的领域对象,第三方发过来的内容先做一次转换,转换成你的领域对象。这种做法称为防腐层。
参考¶
【极客】架构实战案例解析: https://time.geekbang.org/column/intro/100046301